nginx虚拟主机2个域名的相同IP

nginx虚拟主机2个域名的相同IP

我的问题与外面成千上万个类似的问题截然不同。

我有 2 台专用服务器。较强的那台正在提供我的主要域名

我的服务器比较弱,但有巨大的硬盘托管MyOtherDomain.com还有上面我的主域的子域中的图像,可以说:sub.MyMainDomain.com。此服务器有 2 个 IP。如果两个MyOtherDomain.comsub.MyMainDomain.com监听同一个 IP,MyOtherDomain.com会中断。如果监听不同的 IP,问题就解决了……但这是不对的!我们需要它们两个都在 1 个 IP 上工作。

Nginx version: nginx/1.13.8

/etc/nginx/sites-enabled 中的符号链接:

我的其他域名

server {

    listen IP_1:443 ssl http2; 
    server_name MyOtherDomain.com; # this domain must match Common Name (CN) in the SSL certificate
    ...........   
    # pass all requests to Meteor
    location / {
          proxy_pass http://127.0.0.1:3000;

子域

server {

    listen IP1:443 ssl;    # error
    listen IP2:443 ssl;    # work fine
    server_name sub.MyMainDomain.com ;

  # proxy pass to minio 
  location / {
   proxy_set_header Host $http_host;
   proxy_pass http://IP1 or IP2:9000;
}

Nginx配置文件

server { # this block is useless, googling sometime does not help
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server; # not sure if you want/need it here as well. Try both ways.

    server_name _;
     return 444;
}

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

}

所有域名均受 cloudflare DNS 保护,并分配有 IP:

MyMainDomain.com : IP_0

MyOtherDomain.com 和 sub.MyMainDomain.com 共享 IP_1 优先

其他地方需要 IP_2

答案1

不要监听 IP。只监听所有地址。例如:

server {

    listen 443  ssl http2;

    server_name MyOtherDomain.com
}

server {

    listen 443  ssl http2;

    server_name sub.MyOtherDomain.com
}

相关内容