博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx
阅读量:4914 次
发布时间:2019-06-11

本文共 5849 字,大约阅读时间需要 19 分钟。

1.安装

a.安装pcre:yum install pcre -y               yum install pcre-devel    b.安装zlib-devel:yum install zlib-devel     c.yum install gd-devel openssl-devel -y
c.安装编译:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --user=zxadmin --group=zxadmin --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi/ --http-scgi-temp-path=/var/tmp/nginx/scgi/ --with-pcre  --with-file-aio --with-http_image_filter_module make make install

 

2.目录结构

[root@server05 ~]# ll /usr/local/nginx/total 16drwxr-xr-x. 2 root root 4096 Apr 19 18:01 confdrwxr-xr-x. 2 root root 4096 Apr 19 18:01 htmldrwxr-xr-x. 2 root root 4096 Apr 19 18:01 logsdrwxr-xr-x. 2 root root 4096 Apr 19 18:01 sbin

conf --->配置文件

html --->网页文件
logs --->日志文件
sbin --->主要的二进制程序

3.启动nginx

/usr/local/nginx/sbin/nginx   #运行此二进制文件

4.nginx进程:

[root@server05 nginx]# ps -aux|grep nginxroot      33732  0.0  0.0  20328   616 ?        Ss   18:06   0:00 nginx: master process ./sbin/nginx    --nginx主进程nobody    33733  0.0  0.1  20756  1204 ?        S    18:06   0:00 nginx: worker process                 --nginx子进程

5.管理nginx:

/usr/local/nginx/sbin/nginx  -s stop    --fast shutdown(快速停止nginx,很暴力,慎用!)/usr/local/nginx/sbin/nginx  -s quit    --graceful shutdown(完整有序的停止nginx,用户请求结束后关闭进程)/usr/local/nginx/sbin/nginx  -s reload  --reloading the configuration file(重载配置)/usr/local/nginx/sbin/nginx  -s reopen  --reopening the log files(重新打开日志文件)kill -HUP 33837               --平滑重启,需要指定主进程id。kill -USR1 33837                       --重读日志,用于日志切割备份,需要指定主进程id。用其他方法代替PID(每次都要ps获取pid,很麻烦):[root@server05 logs]# cat /usr/local/nginx/logs/nginx.pid 33837-----------------------------------------------------------------cat /usr/local/nginx/logs/nginx.pid |xargs kill -HUPcat /usr/local/nginx/logs/nginx.pid |xargs kill -USR1-----------------------------------------------------------------nginx -t                                 --测试配置文件是否正确配置

6.配置文件

mkdir /usr/local/nginx/conf/vhost
worker_processes 1;                      --有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数

Event {

  worker_connections 1024; // 一般是配置nginx连接的特性,这是指 一个子进程最大允许连1024个连接
}

 

http {

  include mime.types;
  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '    --配置日志格式

   '$status $body_bytes_sent "$http_referer" '
   '"$http_user_agent" "$http_x_forwarded_for"';

  #access_log logs/access.log main;

  sendfile on;

  #tcp_nopush on;

  #keepalive_timeout 0;

  keepalive_timeout 65;

  #gzip on;

  server {                                           --基于域名的虚拟主机

    listen 80;
    server_name www.vijay.com;
    location / {
      root /usr/local/nginx/webroot/;                    --root指虚拟主机根目录,可以写相对路径,也可以写绝对路径 ,此处是绝对路径。
      index 1.html;
    }
    access_log logs/www.vijay.com.access.log main;     --为此虚拟主机设置专用的日志
  }

  server {                                               --基于端口的虚拟主机

    listen 8080;
    server_name www.vijay.com;

    location / {

      root webroot;
      index 2.html;
    }
    access_log logs/8080.access.log main;          --为此虚拟主机设置专用的日志
  }

  server {                                                --基于IP的虚拟主机

    listen 80;
    server_name 192.168.100.175;

    location / {

      root webroot;                                    --root指虚拟主机根目录,可以写相对路径,也可以写绝对路径 ,此处是相对路径。
      index 3.html;
    }
  access_log logs/192.168.100.175.access.log main;       --为此虚拟主机设置专用的日志
}

 

  server {

    listen 80;
    server_name localhost;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {

      root html;
      index ab.html index.html index.htm;
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html

    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
  }

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80

  #
  #location ~ \.php$ {
    # proxy_pass http://127.0.0.1;
  #}

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

  #
  #location ~ \.php$ {
    # root html;
    # fastcgi_pass 127.0.0.1:9000;
    # fastcgi_index index.php;
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    # include fastcgi_params;
  #}

  # deny access to .htaccess files, if Apache's document root

  # concurs with nginx's one
  #
  #location ~ /\.ht {
    # deny all;
  #}

    

include /usr/local/nginx/conf/vhost/*;

}

7.日志管理

我们观察nginx的server段,可以看到如下类似信息

#access_log logs/host.access.log main;
这说明 该server, 它的访问日志的文件是 logs/host.access.log ,
使用的格式”main”格式.
除了main格式,你可以自定义其他格式.

main格式是什么?

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

main格式是我们定义好一种日志的格式,并起个名字,便于引用.

以上面的例子, main类型的日志,记录的 remote_addr.... http_x_forwarded_for等选项.

1: 日志格式 是指记录哪些选项
默认的日志格式: main
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

如默认的main日志格式,记录这么几项

远程IP- 远程用户/用户时间 请求方法(如GET/POST) 请求体body长度 referer来源信息
http-user-agent用户代理/蜘蛛 ,被转发的请求的原始IP

http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

 

2: 声明一个独特的log_format并命名

log_format mylog '$remote_addr- "$request" '

'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
在下面的server/location,我们就可以引用 mylog

在server段中,这样来声明

Nginx允许针对不同的server做不同的Log ,(有的web服务器不支持,如lighttp)

access_log logs/access_8080.log mylog;

声明log log位置 log格式;

8.日志切割:

#! /bin/bash

LOGPATH=/usr/local/nginx/logs/access.log

BAKPATH=/usr/local/nginx/logs/LOG_BAK/$(date -d yesterday +%Y%m)
mkdir -p $BAKPATH
bak=$BAKPATH/$(date -d yesterday +%Y%m%d).access.log

mv $LOGPATH $bak;

touch $LOGPATH;

cat /usr/local/nginx/logs/nginx.pid |xargs kill -USR1;

 

转载于:https://www.cnblogs.com/vijayfly/p/5411819.html

你可能感兴趣的文章
HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
查看>>
重构之路第二篇——在对象之间搬移特性的几种方法
查看>>
多线程杂谈
查看>>
linux python3获取ip地址
查看>>
神药iberogast
查看>>
SQL查询优化
查看>>
使用子查询
查看>>
SD卡调试关键点
查看>>
Hadoop HBase Phoenix 版本
查看>>
深入Java集合学习系列:ConcurrentHashSet简单实现
查看>>
[原创]独立模式安装Hive
查看>>
最长公共上升子序列||LCIS
查看>>
本周ASP.NET英文技术文章推荐[12/17 - 12/23]
查看>>
c++虚函数注意事项
查看>>
翻译qmake文档(四) Building Common Project Types
查看>>
【转】nginx 服务器安装及配置文件详解
查看>>
oracle 函数用法
查看>>
.Net中的水晶报表
查看>>
Android按钮的四种点击事件
查看>>
【Datastage】函数大全
查看>>