【问题标题】:NGINX Multiple Applications on One Domain一个域上的 NGINX 多个应用程序
【发布时间】:2017-01-10 21:58:33
【问题描述】:

我有 2 个应用程序在同一服务器上的不同端口 [8080,8090] 具有相同的域。

我已将 nginx 配置如下:

server {
        listen 80 ;
        server_name  XXX.XXX.XXX;
        root         /usr/share/nginx/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location /{

        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;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://localhost:8080;
        }

        location /admin {
        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;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://localhost:8090;
        }

    }

问题是端口 8080 上的第一个应用程序工作正常,但其他应用程序 CSS 未加载时出现 404 错误。似乎它指向 / 目录。处理这种情况的最佳方法是什么?

如果 /admin 应用程序受到任何影响,应用程序应返回 /Login 页面,我正在查看 nginx 日志:

xx.xx.xx.xx - - [03/Sep/2016:09:00:35 +0000] "GET /admin/ HTTP/1.1" 302 0 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0" "-"
xx.xx.xx.xx - - [03/Sep/2016:09:00:36 +0000] "GET /Login HTTP/1.1" 404 0 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0" "-"

它显示 nginx 代理 /admin 到正确的应用程序,然后 /Login 不在配置中,所以它返回 404,如果我将配置更改为以下:

location /admin {
        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;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://localhost:8090/Login;

它的工作,但 CSS 不,再次因为所有的 css 文件 URL 不在 nginx 配置上!!!!

【问题讨论】:

    标签: nginx


    【解决方案1】:

    您应该以另一种方式提供您的静态文件,并绕过向您的后端发送对静态文件的请求。

    location /{...}之前添加下一段

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
      root    /usr/share/nginx/html/<folder with your static files>;
      include /etc/nginx/mime.types;
      expires 30d;
    }
    

    在此处查看其他设置的信息示例https://www.nginx.com/resources/wiki/start/topics/examples/full/#

    【讨论】:

    • 感谢您的回答,我已经更新了问题看看,我相信与重定向配置相关的问题不提供静态文件..
    • @moata_u 简单地使用条件 'location ~ ^/(admin|Login)/' 怎么样?
    猜你喜欢
    • 2021-12-25
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2023-03-25
    相关资源
    最近更新 更多