nginx的启动 重启 关闭
nginx启动、重启、关闭
一、启动
cd usr/local/nginx/sbin
./nginx
二、重启
更改配置重启nginx
kill -HUP 主进程号或进程号文件路径
或者使用
cd /usr/local/nginx/sbin
./nginx -s reload
判断配置文件是否正确
nginx -t -c /usr/local/nginx/conf/nginx.conf
或者
cd /usr/local/nginx/sbin
./nginx -t
三、关闭
查询nginx主进程号
ps -ef | grep nginx
从容停止 kill -QUIT 主进程号
快速停止 kill -TERM 主进程号
强制停止 kill -9 nginx
若nginx.conf配置了pid文件路径,如果没有,则在logs目录下
kill -信号类型 '/usr/local/nginx/logs/nginx.pid'
四、升级
1、先用新程序替换旧程序文件
2、kill -USR2 旧版程序的主进程号或者进程文件名
此时旧的nginx主进程会把自己的进程文件改名为.oldbin,然后执行新版nginx,此时新旧版本同时运行
3、kill -WINCH 旧版本主进程号
4、不重载配置启动新/旧工作进程
kill -HUP 旧/新版本主进程号
从容关闭旧/新进程
kill -QUIT 旧/新进程号
快速关闭旧/新进程
kill -TERM 旧/新进程号
Nginx一般操作:
Windows:
start nginx # 启动Nginx
nginx.exe -t #检查配置文件
nginx.exe -s stop # 快速停止Nginx,可能并不保存相关信息
nginx.exe -s quit # 完整有序的停止Nginx,并保存相关信息
nginx.exe -s reload # 重新载入Nginx,当配置信息修改,需要重新载入这些配置时使用此命令。
nginx.exe -s reopen # 重新打开日志文件
nginx -v # 查看Nginx版本
tasklist /fi "imagename eq nginx.exe"
netstat -ano | findstr :8800
tasklist /fi "imagename eq nginx.exe" #查看nginx进程
nginx -t -c /nginx-1.15.2/conf/nginx.conf #检查配置
Linux:
/usr/local/nginx/sbin/nginx -t # 检查配置
/usr/local/nginx/sbin/nginx -s reload #平滑重启
kill -QUIT nginx #杀掉进程
切割日志例子
sed -n '/14\/Nov\/2019:03:00:05/','/14\/Nov\/2019:05:00:05/p' access.log > 3-5.log
cat access.log | awk '$4 >="[14/Nov/2019:03:00:00" && $4 <="[14/Nov/2019:05:02:00"
常用查询:
1)总请求数
wc -l nginx.log |awk '{print $1}'
2)独立IP数
awk '{print $1}' nginx.log|sort |uniq |wc -l
3)每秒客户端请求数 TOP5
awk '{print $6}' nginx.log|sort|uniq -c|sort -rn|head -5
4)访问最频繁IP Top5
awk '{print $1}' nginx.log|sort |uniq -c |sort -nr |head -5
5)访问最频繁的URL TOP5
awk '{print $7}' nginx.log|sort |uniq -c |sort -nr |head -5
6)响应大于5秒的URL TOP5
awk '{if ($7 > 5){print $6}}' nginx.log|sort|uniq -c|sort -rn |head -5
7)HTTP状态码(非200)统计 Top5
awk '{if ($11 != 200){print $11}}' nginx.log|sort|uniq -c|sort -rn|head -5
8)分析请求数大于50000的源IP
cat nginx.log|awk '{print $NF}'|sort |uniq -c |sort -nr|awk '{if ($1 >50000){print $2}}'
Websockt 添加nginx: 添加在proxy_pass的下边 有时会报错
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
必要时修改hostname 文件
添加nginx会去掉带有下划线的Header键值
在nginx里的 nginx.conf文件中配置http的部分添加 : underscores_in_headers on;(默认值是off)
添加html显示 在location / 模块下新增
if ($request_filename ~* .*\.(?:htm|html)$)
{
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}

Nginx 设置缓存静态资源:location 块平级
location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$
{
expires 1h;
}
windows查看tcp:
netstat -ant|find /C /I "TCP"
netstat -ant|find /C /I "TIME_WAIT"
netstat -ant|find /C /I "ESTABLISHED"

浙公网安备 33010602011771号