• 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/;   
    		}
    	}
    	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    首先检查Nginx是否正常启动

    cmd -> nginx.exe
    
    • 1

    在这里插入图片描述
    本机或自己配置域名都能正常访问

    在这里插入图片描述

    预想中的访问效果

    在这里插入图片描述
    在这里插入图片描述

    实际中的访问效果 404

    在这里插入图片描述

    原因分析

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

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

    nginx.exe -s reload
    
    • 1

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

    在这里插入图片描述
    在这里插入图片描述

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

    nginx.exe -s stop
    
    • 1

    在这里插入图片描述
    再次使用命令还会产生错误

    nginx: [error] CreateFile() "D:\softwares\nginx-1.24.0/logs/nginx.pid" failed (2: The system cannot find the file specified)
    
    • 1

    解决方案

    1、每次改动配置conf文件后,及时重载入Ngin令配置生效

    D:\softwares\nginx-1.24.0>nginx.exe -s reload
    
    • 1

    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 子进程)的进程。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    命令介绍

    Windows系统下Nginx服务启动、停止、重载等命令

    1、启动服务

    D:\softwares\nginx-1.24.0>start nginx
    
    • 1

    D:\softwares\nginx-1.24.0>nginx.exe
    
    • 1

    注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。

    如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf

    2、停止服务

    D:\softwares\nginx-1.24.0>nginx.exe -s stop
    
    • 1

    D:\softwares\nginx-1.24.0>nginx.exe -s quit
    
    • 1

    注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

    执行 nginx.exe -s stop或者quit命令是不能删除所有nginx进程!

    3、重新载入Nginx

    D:\softwares\nginx-1.24.0>nginx.exe -s reload
    
    • 1

    当配置信息修改,需要重新载入这些配置时使用此命令。

    4、重新打开日志文件

    D:\softwares\nginx-1.24.0>nginx.exe -s reopen
    
    • 1

    5、查看Nginx版本

    D:\softwares\nginx-1.24.0>nginx -v
    
    nginx version: nginx/1.24.0
    
    • 1
    • 2
    • 3
  • 相关阅读:
    Python 随机函数random详解
    Linux应急响应排查
    不用加减乘除做加法
    k8s--基础--10.2--命令--kubectl--常用命令
    领导的潜台词,你读懂了吗?
    ERC20学习
    【CNN】浅谈经典神经网络Classic Network
    【SSM注解汇总】
    【Leetcode】208.实现Trie(前缀树)
    分享一个使用MoviePy库编写的实用脚本示例
  • 原文地址:https://blog.csdn.net/Klhz555/article/details/132889218