这里是文章模块栏目内容页
nginx做反向代理时css和js加载不出来的问题解决

nginx 做反向代理,在实际的生产环境中有很重要的用途,特别是下载nodejs和go等服务器端语言,能独自开启端口监听服务,但是往往希望用nginx来代理这些端口,映射到 80服务器上,提供给用户通过http访问。


这里记录一次 nginx 反向代理一会 react 开发框架nextjs 的3000端口提供访问服务的设置:

server {
    listen 80;
    server_name *.d.com;
    location / {
        proxy_set_header Host  $http_host;
        proxy_pass http://127.0.0.1:3000;
    }
}

==很多资料上只写这一段,它真的可以实现代理端口的请求。但是它没法代理静态资源文件;

所以还需要增加下面这一段到server里面

 location ~ .* {
                        proxy_pass http://127.0.0.1:3000
                        proxy_set_header Host $http_host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }

完整的代码是:

server {
    listen 80;
    server_name *.d.com;
    location / {
        proxy_set_header Host  $http_host;
        proxy_pass http://127.0.0.1:3000;
    }
     location ~ .* {
         proxy_pass http://127.0.0.1:3000
         proxy_set_header Host $http_host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

需要把静态文件也添加反向代理设置。
原因分析:

反向代理的路径下找不到文件,这里需要单独指定js和css文件的访问路径。

好了,本文全部介绍完毕,感谢您的阅读,希望能帮助到您!