当前位置: 代码网 > 服务器>服务器>Nginx > nginx配置后访问出现白屏的问题解决

nginx配置后访问出现白屏的问题解决

2024年07月03日 Nginx 我要评论
问题服务器上有两个web服务ab分别指向3000、3001两个端口,使用nginx进行反向代理,配置文件如下:server { listen 80; server_name www.exa

问题

服务器上有两个web服务ab分别指向3000、3001两个端口,使用nginx进行反向代理,配置文件如下:

server {
    listen 80;
    server_name www.example.com;
    
	location /a/ {
	    proxy_pass http://localhost:3000;
	    proxy_set_header host $host;
	    proxy_set_header x-real-ip $remote_addr;
	    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
	    proxy_set_header x-forwarded-proto $scheme;
	}
}

server {
    listen 80;
    server_name www.example.com;

    location /b/ {
        proxy_pass http://localhost:3001;
        proxy_set_header host $host;
        proxy_set_header x-real-ip $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header x-forwarded-proto $scheme;
    }
}

配置好后,重载:sudo systemctl reload nginx用浏览器访问:www.example.com/a/,浏览器是白屏,没有显示任何内容。

解决的思路:

1、查看日志:

`tail -n 10 /var/log/nginx/error.log`

显示内容如下:

[error] 1104804#1104804: *10 open()
“/usr/share/nginx/html/static/css/main.54631fc9.css” failed (2: no
such file or directory), client: 18.81.26.177, server:
www.example.com, request: “get /static/css/main.54631fc9.css
http/1.1”, host: “www.example.com”, referrer:
“http://www.example.com/a/”

2、分析

根据错误日志,nginx正在尝试在/usr/share/nginx/html/static/css/目录下查找main.54631fc9.css文件,但是没有找到。这是因为我的web应用在/a路径下寻找静态文件,但是nginx在默认的静态文件目录下查找。

3、查找

find / -name main.54631fc9.css

结果什么都没有找到

4、采用二级域名

配置文件调整如下:

server {
    listen 80;
    server_name a.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header host $host;
        proxy_set_header x-real-ip $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header x-forwarded-proto $scheme;
    }
}

server {
    listen 80;
    server_name b.example.com;

    location / {
        proxy_pass http://localhost:3001;
        proxy_set_header host $host;
        proxy_set_header x-real-ip $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header x-forwarded-proto $scheme;
    }
}

重载nginx

在浏览器上b.example.com访问正常,但a.example.com显示nginx的欢迎页面,并未访问到正确的web页面。

5、再查日志

`tail -n 10 /var/log/nginx/error.log`

显示内容如下:

[error] 1106994#1106994: *780 open()
“/usr/share/nginx/html/favicon.ico” failed (2: no such file or
directory), client: 18.81.26.177, server: example.com, request: “get
/favicon.ico http/1.1”, host: “a.example.com”, referrer:
“http://a.example.com/”

6、再分析

根据错误日志中的提示信息,可以看到请求的是/favicon.ico文件,但是在/usr/share/nginx/html/目录下找不到该文件。因此,与该错误相关的语句是代理到a.example.com的location块中的proxy_pass语句。这条语句将请求代理到localhost:3000,而不是/usr/share/nginx/html/目录下的文件。

7、再查找

find / -name favicon.ico

找到/favicon.ico文件在以下目录:

 /usr/local/src/a/web/berry/public/favicon.ico 
 /usr/local/src/a/web/default/public/favicon.ico

8、添加多一个location

    location = /favicon.ico {
        alias /usr/local/src/a/web/berry/public/favicon.ico;
    }

a应用能正常访问了。

9、完整的配置文件

server {
    listen 80;
    server_name a.example.com;

    location = /favicon.ico {
        alias /usr/local/src/a/web/berry/public/favicon.ico;
    }

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header host $host;
        proxy_set_header x-real-ip $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header x-forwarded-proto $scheme;
    }
}

server {
    listen 80;
    server_name b.example.com;

    location / {
        proxy_pass http://localhost:3001;
        proxy_set_header host $host;
        proxy_set_header x-real-ip $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header x-forwarded-proto $scheme;
    }
}

10、小结

nginx配置后遇到问题,查error.log是解决问题的关键,通过仔细分析里面的错误提示信息,不难找到解决的办法。

到此这篇关于nginx配置后访问出现白屏的问题解决的文章就介绍到这了,更多相关nginx配置访问白屏内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com