【发布时间】:2019-05-23 19:13:07
【问题描述】:
我有一个 NGINX 服务器作为反向代理运行。代理适用于 Windows 主机,但是我有一个自己的云服务器,代理会将 url 改写为内部主机名或 IP 地址。 ex(我输入 cloud.example.com,我的 url 栏将更改为 10.1.1.19,这在 wan 上无法解析
我检查了 DNS 记录并确保 NGINX 可以解析主机名。还尝试将 http 流量转发到云服务器,以确保使用域名不是问题。
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://10.1.1.16:80/;
}
}
server {
listen 80;
listen [::]:80;
server_name cloud.example.com;
location / {
proxy_pass http://10.1.1.19:80/;
}
}
server {
listen 80;
listen [::]:80;
server_name remote.example.com;
location / {
proxy_pass http://10.1.1.17:80/;
}
}
我只需要 NGINX 作为“cloud.example.com”的代理运行,而不是重写 URL
【问题讨论】:
-
您可以尝试从 proxy_pass 中的 URL 末尾删除 /
-
没有用。它仍在重定向到 server { listen 80; 下面的新代码的内部地址听 [::]:80; server_name cloud.example.com;位置 / { proxy_pass 10.1.1.19:80; } }
-
尝试为每个 URL 创建不同的文件并将它们放在启用站点的文件夹中,然后运行 nginx -t reload 。移除 IPV6 监听 [::]:80;来自conf。让我知道结果,然后我将与您分享一些工作 conf 文件
-
所以这实际上破坏了更多的网站。然而,在把所有东西放回去时,我确实看到它只是重定向而不是代理的 Linux 主机,我添加了 cockpit 只是为了测试它,它做同样的事情,但是我抛出 Windows IIS 页面给它一个随机端口,它工作正常。我忽略了 linux 是否存在配置问题?
-
我是一个 linux 菜鸟,所以我建立了一个“桌面”版本,所以我有一个 UI 可以完全按照你说的那样工作。这次它没有破坏 windows 主机,但任何 linux 主机都将 url 改写为服务器的内部 IP。