加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx反向代理到另一个服务静态文件的nginx服务器

发布时间:2020-12-13 21:14:49 所属栏目:Nginx 来源:网络整理
导读:我有一个Nginx服务器托管一个Web应用程序,直接访问时工作正常.它的配置如下 server { listen 8000 default_server; listen [::]:8000 default_server ipv6only=on; root /data/www/ ; server_name server1.com; location / { try_files $uri $uri/ =404; } l

我有一个Nginx服务器托管一个Web应用程序,直接访问时工作正常.它的配置如下

server {
    listen 8000 default_server;

    listen [::]:8000 default_server ipv6only=on;

    root /data/www/ ;
    server_name server1.com;

    location / {
            try_files $uri $uri/ =404;
        }

    location /app/ {

    }   
}

现在我必须从另一个Nginx服务器提供这个应用程序所以我设置反向代理如下

server {
        listen 80 default_server;

        listen [::]:80 default_server ipv6only=on;

        root /data/www/ ;
        server_name server2.com;

        location / {
                try_files $uri $uri/ =404;
            }

        location /app/ {
                proxy_pass http://server1.com:8000/app/;
        }   

当我从server2访问应用程序时,我收到如下错误,例如当我访问http://server2.com/app/css/app.css时(抱歉没有代表发布链接)

[error] 6601#0: *1 open() “/data/www/app/css/app.css” failed (2: No such file or directory)

并且在server1日志中中中中到一M为什么nginx在server2中寻找静态文件时我已将其设置为反向代理到server1相同的设置在apache中工作正常

ProxyPass /app/ http:server1:8000/app/

ProxyPassReverse /app/ http:server1:8000/app/

我错过了什么?

最佳答案
问题是你的第二个nginx实例试图在本地提供文件:

   location / {
           try_files $uri $uri/ =404;
      }

如果你想使用http://server2.com/app/服务,只需删除整个内容.如果你想使用http://server2.com/,请更新配置以反映:

  listen [::]:80 default_server ipv6only=on;

   server_name server2.com;

   location / {
          proxy_pass http://server1.com:8000/app/;
  }  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读