该文是学习《实战nginx,取代apache的web服务器》第二章
1、优点:
官方测试Nginx支撑5万并发连接数,实际生产中可以支撑2-4万的并发连接数。Nginx是轻量级服务区,消耗内存少。
相比apache和lightpd,nginx在反向代理、Rewrite规则、稳定性、静态文件处理、内存消耗等方面,表现出很强的优势。
Nginx支持热部署,7*24小时的运行没问题,数个月都不需要重启!!不间断服务的情况下对软件升级!
nginx和apache、lightpd相比较(CSDN抽风了,不能上传图片)
2、特点-模块依赖性
Nginx的gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库。
nginx安装中有几个参数(不同版本有区别,用./configure --help来查看参数选项列表):
--prefix:nginx的安装路径,默认/usr/local/nginx
--sbin-path:nginx可执行文件的安装路径,默认在/sbin/nginx
--conf-path:nginx.conf的路径,默认在/conf/nginx.conf.
--lock-path:nginx.lock文件的路径
--error-log-path:在nginx中没有指定access_log指令的情况下,默认的访问日志路径。
--with-http_ssl_model:开启http ssl模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装OPNSSL。
--http-log-path:指定http默认访问日志的路径。
3、nginx启动
/usr/local/nginx/sbin/nginx -c /.../.../nginx.conf, 不加c参数,则默认加载/usr/local/sbin/nginx/conf/nginx.conf
4、nginx停止
获得进程号:
如果在nginx.conf中配置了pid文件,则文件中存储的是nginx主进程的进程号;
用ps -ef | grep nginx 查看nginx进程号;备注为mast process 的为主进程,worker process的为子进程。
(1)从容停止:kill -QUIT Nginx主进程号;或 kill -QUIT /usr/local/webserver/nginx/logs/nginx.pid
(2)快速停止:kill -TERM Nginx主进程号; 或 kill -TERM /usr/local/webserver/nginx/logs/nginx.pid (或者参数TERM 改为 INT)
(3)强制停止所有Nginx:pkill -9 nginx
5、nginx平滑重启
如果修改了配置文件(确保配置文件格式正确,否则还是加载原来的配置文件并提示错误)
kill -HUP Nginx主进程号
kill -HUP /usr/local/webserver/nginx/logs/nginx.pid
收到HUP信号时候,先尝试解析配置文件,如果成功则应用新的配置文件,否则继续使用旧额配置文件。
6、nginx的信号控制
TERM,INT 快速关闭
QUIT 从容关闭
HUP 平滑重启,重新加载配置文件
USR1 重新阿凯日志文件,在切割日志时候用途较大
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程
7、nginx平滑升级
(1)将新版本nginx编译安装到旧版本的nginx路径下(替换前,先备份旧版本文件)
(2)发送kill --USR2 旧版本nginx主进程(旧版本会将pid文件命名.oldbin)
(3)新旧版本nginx同时运行,共同处理输入的请求
(4)旧的工作进程退出
(5)决定是否使用新版本:
kill -HUP 旧版本主进程号 (nginx将在不重载配置文件下启动它的工作进程)
kill -QUIT 新的主进程号(旧的主进程号):从容关闭其工作进程(看你是要升级还是恢复到升级之前的)
kill -TERM 新的主进程号:强制退出
如果恢复到升级之前,新的主进程退出后,旧的主进程会移除.oldbin前缀改为.pid
8、windows下nginx的启动停止等命令
start nginx.exe //启动nginx;
nginx.exe -s stop //停止nginx;
nginx.exe -s reload //重新加载nginx;
nginx.exe -s quit //退出nginx
nginx.exe -t //检查nginx.conf配置文件,linux中直接是: nginx -t