【发布时间】:2026-01-18 08:20:03
【问题描述】:
我需要在我的 nginx 网络服务器(reverse_proxy)中实现这个配置:
我有一个像www.domainA.it 这样的域来响应我的站点,然后我需要从我的www.domainA.it/appA 发布另一个“应用程序”,该应用程序响应另一个域,例如www.domainB.it/appB
我实现的nginx配置是这样的:
server {
listen 443;
server_name www.domainA.it domainA.it;
error_log ssl_error.log;
access_log ssl_access.log;
ssl on;
ssl_certificate my.crt;
ssl_certificate_key my.key;
include /etc/nginx/sec.conf;
add_header 'Access-Control-Allow-Origin' *;
location / {
add_header 'Access-Control-Allow-Origin' *;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://my-backend;
}
location /appA {
proxy_pass https://domainB/appB/;
proxy_http_version 1.1;
add_header Access-Control-Allow-Origin *;
proxy_set_header Host $proxy_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
使用此配置,我收到如下错误:
https://www.domainA.it/appB/..。 404 未找到
https://www.domainA.it/appB/..。 404 未找到
。 . .
如果我公开相同的位置 www.domainA/appB ,一切正常
我该怎么做??
非常感谢
【问题讨论】:
-
我只能在你的 nginx 配置中看到
appA?请分享整个配置或添加/appB位置?您想要透明路径还是要将/appA和appB发送到您的后端?通过您的配置,您的后端将收到一个请求 domainB/appB/appA.... . -
嗨,配置只有 location / 和 location /appA 。是的,就像透明路径一样,当我调用 www.domainA/appA 时,我希望 proxy_pass 将我发送到 www.domainB/appB 但保持 URL www.domainA/appA。非常感谢
-
www.domainB/appB是否与www.domainA/appA在同一台服务器上? -
不,在另一台服务器上
标签: nginx reverse-proxy proxypass