nginx的使用

1、安装

  1、先安装gcc

yum install -y gcc gcc-c++

  2、安装pcre和pcre-devel

yum install pcre pcre-devel

  3、安装zlib库

cd /usr/local/
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
./configure
make && make install

  4、安装nginx

cd /usr/local/src/
wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar zxvf nginx-1.16.0.tar.gz 
cd nginx-1.16.0
./configure --prefix=/usr/local/nginx
make && make install

  5、启动nginx

/usr/local/nginx/sbin/nginx

  6、启动完成后可以访问一下ip,是看否启动成功,如果启动不成功可能是端口被占用,需要把占用端口的软件关闭,重新启动

2、信号量

  1、具体语法:Kill -信号选项 nginx的主进程号

  2、信号选项有下列几个:

1、TETM、INT  -------  快速关闭
2、QUIT  -------  优雅的关闭,等所有进程处理完任务后关闭主进程
3、HUP  -------  优雅的重启,重新读取配置文件
4、USR1  -------  如果备份了旧的日志文件,想让日志写入新创建的日志中,需要使用的指令
5、USR2  -------  平滑的升级

3、命令控制

  1、基本命令如下:

1、/usr/local/nginx/sbin/nginx    启动
2、./sbin/nginx -s quit    优雅关闭
3、./sbin/nginx -s stop    快速关闭
4、./sbin/nginx -s reopen    重读配置文件
5、./sbin/nginx -t    测试配置文件是否正确
6、./sbin/nginx -s reload    重启

4、Nginx配置段

  1、全局区

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

  2、events块

Event {
// 一般是配置nginx连接的特性
// 如1个word能同时允许多少连接
 worker_connections  1024; // 这是指 一个子进程最大允许连1024个连接
}

  3、http段

http {  //这是配置http服务器的主要段
     Server1 { // 这是虚拟主机段
            Location {  //定位,把特殊的路径或文件再次定位 ,如image目录单独处理
            }             /// 如.php单独处理
     }
     Server2 {
     }
}

  4、server块

server {
    listen       80;//监听的端口
    server_name  localhost;//监听的域名,如果有域名此处可以改为域名
                
    //访问域名时跳转到的文件夹
    location / {
        root   html;//此处为文件夹的路径,可以为绝对路径,也可以是基于nginx的相对路径
        index  index.html index.htm;//此处为只输入域名,跳转到的首页
    }
    //在此处加日志,可以添加单独的日志文件
    access_log  logs/8099.log  main;//main为日志文件的格式,需要将上面的注释打开才能使用
}

5、日志格式

  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段中,这样来声明
Nginx允许针对不同的server做不同的Log ,(有的web服务器不支持,如lighttp)

access_log logs/access_8080.log mylog;   
声明log   log位置   log格式;

6、将nginx的日志按时间划分并保存

凌晨00:00:01,把昨天的日志重命名,放在相应的目录下
再USR1信息号控制nginx重新生成新的日志文件
 
具体脚本:
#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

定时任务
Crontab 编辑定时任务
01 00 * * * /xxx/path/b.sh  每天0时1分(建议在02-04点之间,系统负载小)

 

posted @ 2019-07-10 11:07  IT-凯  阅读(142)  评论(0编辑  收藏  举报