Nginx教程

解决nginx配置负载均衡时invalid host in upstream报错

本文主要是介绍解决nginx配置负载均衡时invalid host in upstream报错,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

当前平台: windows

nginx版本: 1.11.5

前言: 在配置负载均衡时,同时也需要设置反向代理,当修改了nginx.conf时,发现nginx服务无法开启。

1. 打开"nginx/logs/error.log",查看最新的错误日志, invalid host in upstream

https://img2.sycdn.imooc.com/645a31900001307b13100071.jpg

红色: 后端服务器的主机无效,蓝色: 主机地址: http://192.168.29.128  绿色: 错误行数在nginx.conf的55行。   大概的也就出来了,就是设定负载均衡服务器的128主机无法访问,或者拒绝访问等等。

2. 查看设定负载均衡服务器列表的地方

upstream webservers {
   server http://127.0.0.1 weight=10;
   server htpp://192.168.29.130 weight=10;}

3. 查看虚拟服务器vhosts.conf的配置

server {        listen       80;
        server_name  www.bjy.com www.bjy.com;
        root   "D:\set-soft\phpstudy2018\PHPTutorial\WWW\baijunyao-bjyadmin";
		location / {
            proxy_pass   http://webservers;
            proxy_set_header X-Real-IP $remote_addr; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
		
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

4. 发现反向代理的proxy_pass里和负载均衡服务器列表都带了http://,而webservers就已经代表了服务器列表中的一个,所以只需在列表中的地址去除http://就可以。

https://img3.sycdn.imooc.com/645a31900001519608860384.jpg

https://img4.sycdn.imooc.com/645a31900001b0d205980120.jpg

 


这篇关于解决nginx配置负载均衡时invalid host in upstream报错的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!