Nginx 转发请求到本地 IP

Nginx forwards request to local IP

这是我第一次真正使用 nginx,所以如果我在这里使用了术语,请原谅我。

所以我们公司的网络有一个静态 IP,我从多个子域向其发送请求:

jitsi.domain.ext -> public IP
sub2.domain.ext -> public IP
...

这些请求通过防火墙和端口转发到我的专用 nginx 服务器,并应从那里路由到其他本地服务器,如下所示:

jitsi.domain.ext -> local server (jitsi server)
sub2.domain.ext -> local server (website)
...

为此,除了未触及的全局配置之外,我还为每个子域创建了一个单独的配置并将其放入

/etc/nginx/sites-available 并通过 ln -s 链接到 /etc/nginx/sites-enabled

像这样:

# jitsi.domain.ext

server {
    listen 80;
    listen 443 ssl;

    ssl_certificate           /etc/nginx/cert/jitsiCert.pem;
    ssl_certificate_key       /etc/nginx/cert/jitsiKey.pem;

    server_name jitsi.domain.ext;
    location / {
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
        proxy_pass http://192.168.0.139;
        proxy_redirect off;
    }
}

配置被调用得很好,但它确实将我重定向到浏览器中的 URL“192.168.0.139”。当我在网络之外并想访问它时,这当然不起作用。

我使用的 .pem 是我为 Jitsi 服务器创建的。我认为这是最简单的方法,因为专用的 Jitsi 服务器也使用 nginx,我不想篡改它以免破坏它获得的任何未来更新。

如果有人能为我提供线索,我将不胜感激。我试图从文档和互联网上讨论的无数其他类似问题中得到一些东西,但似乎没有什么对我有用。提前致谢!

Ivan Shatsky的帮助下,我开始意识到“问题”确实是jitsi的nginx的重定向,而不是我的“网关”nginx的配置。

Russel August helped me solve that problem here and here.