场景还原
今天有小伙伴练习Nginx
配置负载均衡时总是无法使用配置好的网址访问
配置文件信详情
http {# 负载均衡 后端IP地址和端口 webservers 策略 轮询upstream webservers{server 192.168.1.100:8080 weight=90; server 127.0.0.1:8080 weight=10; }server{listen 80;server_name www.gj.com;# 后端访问地址location /back/ {proxy_pass http://webservers/yc_xxx_blog/back/; ##反向代理执行定义的upstream名字 webservers}# 前端访问地址location /api/ {proxy_pass http://webservers/yc_xxx_blog/; }}}
首先检查Nginx是否正常启动
cmd -> nginx.exe
本机或自己配置域名都能正常访问
预想中的访问效果
实际中的访问效果 404
原因分析
Nginx服务进程可能被误操作开启多个导致产生许多个
1、修改配置信息未及时重载入Ngin令配置生效
nginx.exe -s reload
2、直接点击nginx.exe
,虽然每次会闪退但是都会各自一个nginx
进程产生
3、nginx
停止服务的命令并不能关闭所有的进程
nginx.exe -s stop
再次使用命令还会产生错误
nginx: [error] CreateFile() "D:\softwares\nginx-1.24.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
解决方案
1、每次改动配置conf文件后,及时重载入Ngin令配置生效
D:\softwares\nginx-1.24.0>nginx.exe -s reload
2、任务管理器手动杀死全部的Nginx进程 太过麻烦
有小伙伴因闪退以为未启动 点击的n次 然后手动一个个删除 人麻了
3、强制终止运行中的 nginx.exe 进程及其所有子进程
D:\softwares\nginx-1.24.0>taskkill /f /t /im nginx.exe
成功: 已终止 PID 20388 (属于 PID 18304 子进程)的进程。
成功: 已终止 PID 19984 (属于 PID 10204 子进程)的进程。
成功: 已终止 PID 18304 (属于 PID 10524 子进程)的进程。
成功: 已终止 PID 10204 (属于 PID 23032 子进程)的进程。
成功: 已终止 PID 10524 (属于 PID 7124 子进程)的进程。
成功: 已终止 PID 23032 (属于 PID 20504 子进程)的进程。
命令介绍
Windows
系统下Nginx
服务启动、停止、重载等命令
1、启动服务
D:\softwares\nginx-1.24.0>start nginx
或
D:\softwares\nginx-1.24.0>nginx.exe
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf
2、停止服务
D:\softwares\nginx-1.24.0>nginx.exe -s stop
或
D:\softwares\nginx-1.24.0>nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
执行 nginx.exe -s stop或者quit命令是不能删除所有nginx进程!
3、重新载入Nginx
D:\softwares\nginx-1.24.0>nginx.exe -s reload
当配置信息修改,需要重新载入这些配置时使用此命令。
4、重新打开日志文件
D:\softwares\nginx-1.24.0>nginx.exe -s reopen
5、查看Nginx版本
D:\softwares\nginx-1.24.0>nginx -vnginx version: nginx/1.24.0