当前位置: 首页>后端>正文

nginx配置中的通配符 nginx同步配置

一.nginx的概述

1.nginx

Nginx (engine x)是一个高性能的HTTP和反向代理web服务器。用于HTTP协议、HTTPS、SMTP、POP3和IMAP协议。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2.同步与异步

同步:客户端发起请求,请求从用户。socket被一直占用
异步:服务发起,服务器立即返回信息。socket没有被占用

3.阻塞和非阻塞

阻塞: 线程在执行IO操作获取数据时,这个IO可能需要一定的时间才能等到数据返回,然后才能放接着执行下面的命令。这个线程的等待状态称为阻塞,这样很显然没有充分利用起cpu的资源。
非阻塞: 这个线程在进行IO操作时,无需等待数据的返回,可以接着往下执行代码

4.nginx的优势

IO输入模型:nginx使用的异步非阻塞模型,apache使用的是同步阻塞,存在进程间切换是要消耗资源的。这也就是为何nginx要比apache处理更多的请求更多的并非的原因。

二.nginx的配置

1.下载源码并解压 nginx-1.15.8.tar.gz

tar zxf nginx-1.15.8.tar.gz

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim,第1张

2.debug关掉

vim auto/cc/gcc 
# debug
#CFLAGS="$CFLAGS -g"

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_02,第2张

3.解决依赖性

yum install -y pcre-devel zlib-devel gcc

4.语法检测

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_03,第3张

5.源码编译

./configure --prefix=/usr/local/nginx --with-file-aio

6.make

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx_04,第4张

7.make install

8.版本检测

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -V ##查看版本号

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx_05,第5张

9.开启nginx

/usr/local/nginx/sbin/nginx

10.添加用户nginx

useradd nginx

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx_06,第6张

11.修改配置文件前关掉nginx

/usr/local/nginx/sbin/nginx -s stop

12.修改限制文件,设置最大连接数为65536

vim /etc/security/limits.conf
nginx   -       nofile  65536

13.修改配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf
user  nginx nginx;
worker_processes  2;

events {
    worker_connections  65535;
}

三.nginx版本更新

1.下载更高版本nginx-1.16.0.tar.gz

2.解压

tar zxf nginx-1.16.0.tar.gz

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_07,第7张

3.编译的参数要与之前的版本编译时一致

./configure --prefix=/usr/local/nginx --with-file-aio

4.make

5.查看版本nginx-1.16.0

./nginx -V

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx_08,第8张

6.旧版本备份,一旦更新失败回滚。

cd /usr/local/nginx/sbin/

./nginx -V
cp nginx nginx.old

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_09,第9张

7.复制新的源码

cp -f /root/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/

8.让旧版本的master停止接受新的连接访问

ps -ef | grep nginx
kill -USR2 9884  ##9884是旧版本master进程号

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_10,第10张

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_11,第11张

9.旧版本的worker处理完访问后关闭

kill -WINCH 9884
ps -ef | grep nginx

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_12,第12张

10.更新完成

/usr/local/nginx/sbin/nginx -V

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_13,第13张

四.nginx的版本回滚

1.版本会滚

cd /usr/local/nginx/sbin/
cp -f nginx.old nginx

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_14,第14张

2.唤醒旧版本的master,让他开启旧版本的worker

master进程是读取及评估配置和维持。worker进程是用来处理请求的。

kill -HUP 9884

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_15,第15张

3.让新版本的master停止接受新的连接访问

kill -USR2 9890 ##9890是新版本master进程号

4.让新版本的worker处理完后关闭

kill -WINCH 9890

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_16,第16张

5.回滚完成

/usr/local/nginx/sbin/nginx -V

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_17,第17张

6.杀死更新失败的新版本master进程

kill -9 19559
/usr/local/nginx/sbin/nginx -V

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_18,第18张

7.浏览器访问172.25.77.1(nginx的测试页)

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_19,第19张

五.nginx的日志管理

1.查看日志文件

cd /usr/local/nginx/logs

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_20,第20张

2.日志文件大小

1)查看日志大小

du -sh *

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_21,第21张

2)客户端访问请求

ab -c 1 -n 100000 http://172.25.77.1/index.html

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_22,第22张

3)再次查看日志大小

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_23,第23张

3.reopen重新生成日志文件

1)备份(实际不可能以上方式备份日志文件!)

cd /usr/local/nginx/logs
mv access.log access.log.bak  ##备份

2)reopen

/usr/local/nginx/sbin/nginx -s reopen

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_24,第24张

4.备份日志

日志往往需要切割处理保存,以时间来命名保存比较合理

mv access.log `date +%F -d -1day`_access.log

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_25,第25张

写一个脚本结合crontab实现每天的零点零分对nginx的前一天的日志文件备份,并重新生成新的日志文件.

vim backup.sh

#!/bin/bash

LOG_PATH=/usr/local/nginx/logs/oldlogs
CUR_LOG_PATH=/usr/local/nginx/logs
YESTERDAY=$(date +%F -d -1day)

mv $CUR_LOG_PATH/access.log $LOG_PATH/${YESTERDAY}_access.log
mv $CUR_LOG_PATH/error.log $LOG_PATH/${YESTERDAY}_error.log

kill -USR1 $(cat $CUR_LOG_PATH/nginx.pid)

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_26,第26张

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_旧版_27,第27张

六.nginx的压缩

1.为了效果明显,修改nginx访问页面

用/etc/password复制过来作为访问内容.

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_28,第28张

2.浏览器访问172.25.77.1

F12 查看340k是68k

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx_29,第29张

3.修改配置文件

vim /usr/local/nginx/conf/nginx.conf

    gzip  on;
    gzip_min_length 1;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd/php image/jpeg image/gif image/png;

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_30,第30张

4.重新加载nginx

/usr/local/nginx/sbin/nginx -s reload

5.浏览器访问172.25.77.1

F12 查看66.12k压缩成1.4k

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_nginx配置中的通配符_31,第31张

七.nginx启动方式的修改

/usr/lib/systemd/system ##系统默认systemctl命令存在目录
/etc/systemd/system  ##官方建议的用户自己的命令目录

1.安装httpd

yum install -y httpd

2.将httpd服务的作为模板复制,并修改

cp httpd.service /etc/systemd/system/nginx.service

vim /etc/systemd/system/nginx.service

[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=foring
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/url/local/nginx/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target

3.关闭nginx

systemctl stop nginx
systemctl status nginx

nginx配置中的通配符 nginx同步配置,nginx配置中的通配符 nginx同步配置_vim_32,第32张

4.打开nginx

systemctl start nginx
systemctl status nginx



https://www.xamrdz.com/backend/3zx1925816.html

相关文章: