我的问题与外面成千上万个类似的问题截然不同。
我有 2 台专用服务器。较强的那台正在提供我的主要域名
我的服务器比较弱,但有巨大的硬盘托管MyOtherDomain.com还有上面我的主域的子域中的图像,可以说:sub.MyMainDomain.com。此服务器有 2 个 IP。如果两个MyOtherDomain.com和 sub.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
}