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

Nginx配置负载均衡时访问地址无法生效_第1张图片
本机或自己配置域名都能正常访问

Nginx配置负载均衡时访问地址无法生效_第2张图片

预想中的访问效果

Nginx配置负载均衡时访问地址无法生效_第3张图片
Nginx配置负载均衡时访问地址无法生效_第4张图片

实际中的访问效果 404

在这里插入图片描述

原因分析

Nginx服务进程可能被误操作开启多个导致产生许多个

1、修改配置信息未及时重载入Ngin令配置生效

nginx.exe -s reload

2、直接点击nginx.exe,虽然每次会闪退但是都会各自一个nginx进程产生

Nginx配置负载均衡时访问地址无法生效_第5张图片
Nginx配置负载均衡时访问地址无法生效_第6张图片

3、nginx停止服务的命令并不能关闭所有的进程

nginx.exe -s stop

Nginx配置负载均衡时访问地址无法生效_第7张图片
再次使用命令还会产生错误

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 子进程)的进程。

Nginx配置负载均衡时访问地址无法生效_第8张图片

命令介绍

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 -v

nginx version: nginx/1.24.0

你可能感兴趣的:(Linux,nginx,负载均衡,运维)