Nginx反向代理配置多域虚拟主机

Nginx reverse proxy configuration multi domains virtualhost

尽管阅读了许多指南并连续三个晚上尝试,但我在配置我的 nginx 代理时遇到了问题。

这是我的拓扑:

(来自互联网)来自端口 80 的所有流量都被重定向到 192.168.1.4,一个 ubuntu-服务器虚拟 运行 nginx。

我有一个 NAS,它有一个连接到管理页面的子域 myName.surname.com。在那个 NAS 上,我有 apache 网络服务器 运行 在端口 81、82、

上托管几个站点

NAS 使用虚拟主机,因此域成功重定向(不使用 nginx)。

我在另一个 192.168.1.3:9810 上的 IIS 上也有一个 ASP.NET 网站 运行。

现在这是我的 NGINX 配置。我尝试配置它几次但弄坏了它所以我把它恢复到默认状态:

server {        
    listen 80 default_server;
    root /usr/share/nginx/html;
    index index.html index.htm;      
    server_name localhost;
    location / {            
        proxy_pass http://192.168.1.1; #WORKS OK
    }
}

如果我继续 myName.surname.comwordpressWebsite.co.ukmyIISSiteDomain.co.uk 我会在上面的配置中看到 正确的页面 在 192.168.1.1 :8080 或 192.168.1.1:81。

这是一个开始。

第一个问题是当我导航到 wordpressWebsite.co.uk/blog 等任何其他页面(不是主页)时,它会中断并显示 404。所以我试图区分 URL秒?我读到配置应该是这样的:

server {        
    listen 80;
    server_name wordpressWebsite.co.uk;
    location / {            
        proxy_pass http://192.168.1.1:81;
    }
}
server {        
    listen 80;
    server_name myName.surname.com;
    location / {            
        proxy_pass http://192.168.1.1;
    }
}
server {        
    listen 80 myIISSiteDomain.co.uk
    location / {            
        proxy_pass http://192.168.1.3:9810;
    }
}

但这并不完全正确。

1) wordpressWebsite.co.uk 加载了页面,但是一旦我转到任何其他 link,例如 wordpressWebsite.co.uk/blog,它就会中断,给我我的 NAS 错误消息就像它试图访问 192.168.1.1/blog 而不是虚拟主机 ~/blog。它实际上将导航栏中的 URL 更改为 192.168.1.1 那么为什么它会这样呢?

2) 如果我使用的是虚拟主机,我认为我不需要通过 nginx 为 192.168.1.1:81 (wordpressWebsite.co.uk) 传入端口。当然我只需要将它指向 192.168.1.1,然后 virtualhost 应该检测到 url 映射到 81?我不确定如何执行此操作,因为我不完全了解从 nginx 实际传递到服务器的内容是什么?

您可以添加 try_files $uri $uri/ /index.php?$args; 看到这个 https://www.geekytuts.net/linux/ultimate-nginx-configuration-for-wordpress/