Nginx配置负载均衡时访问地址无法生效的解决方法
作者:梦凝哲雪
场景还原
今天有小伙伴练习 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
到此这篇关于Nginx配置负载均衡时访问地址无法生效的解决方法的文章就介绍到这了,更多相关Nginx 负载均衡无法生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!