我有一个 VPS,其主要界面可通过两个 Internet 名称访问,我将在此将其命名为 personal.me 和 company.com。我正在运行一个 Mattermost 服务器,可以使用以下 nginx 规则通过 personal.me 访问它:
server {
server_name personal.me;
location / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://localhost:8065;
}
}
这工作得很好,但我也想通过http://company.com/fora/访问实例——关键是这次有一个 /fora/ 路径要删除。我知道我应该使用 https:// 但这是另一回事,稍后再说。我试过了:
server {
listen 80;
server_name company.com;
location / {
root [...];
index index.html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /fora/ {
client_max_body_size 50M;
rewrite /fora/ / break;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://localhost:8065;
}
}
但是当我导航到http://company.com/fora/时,虽然标题栏更改为 Mattermost,但没有内容 --- 页面是空白的。由于我可以通过personal.me URL 访问Mattermost,我相信Mattermost 运行正常。
company.com 规则有什么问题?是否与不将路径传递到 Mattermost 有关?
根据Nginx 反向代理 (proxy_pass) 不传递子文件夹和http://forum.mattermost.org/t/blank-page-when-installing-mattermost-with-nginx-proxy-pass-as-subdirectory/1604这是'不可能,但我不明白……删除一些 URL 是 nginx 的核心功能之一吗?