nginx - 在 Nginx 中处理来自单个域的多个应用程序
问题描述
我试图将 Nginx 配置为处理多个应用程序(后端)以处理单个域(server_name
),但我遇到了一个奇怪的问题。
我想做的是,
www.test.com -------------> serving the main application (127.0.0.1:7888)
|
-------------> management application (127.0.0.1:2666)
我的初始配置如下,
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name test.com;
## SSL settings
ssl on;
location / {
proxy_pass http://127.0.0.1:7888;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
location /management {
rewrite ^/management/(.*)$ /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass https://127.0.0.1:2666;
}
}
这适用于主要应用程序。它也可以路由到/management
应用程序,但是它试图management
通过主应用程序访问静态文件并抛出404
.
为了纠正这个问题,我将配置修改为,
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name test.com;
## SSL settings
ssl on;
location / {
proxy_pass http://127.0.0.1:7888;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
try_files $uri $uri/ @fallback;
}
location /management {
rewrite ^/management/(.*)$ /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass https://127.0.0.1:2666;
}
location @fallback {
proxy_pass https://127.0.0.1:2666;
}
}
/management
由于配置,现在应用程序运行良好,但不是主应用程序try_files
。
有没有办法解决这个问题?
解决方案
推荐阅读
- javascript - 如何解决 Marquee stumble 问题?
- rest - 数组数据提供者的 REST API 响应
- c - 指向非 const 变量的 const 指针
- django - Django如何使用单独的数据库进行默认身份验证
- javascript - firebase.auth().onAuthStateChanged() 函数即使在取消订阅后也会被多次调用
- java - Android在内部根目录中创建文件夹
- android - Kotlin 中的 RecyclerView onitemClickListener
- scala - Gatling Websocket 对消息做出反应
- google-chrome - Chrome 移动设备模拟器无法加载 PDF
- laravel - 更新数据库时 Laravel 数组到字符串转换错误