使用 DNS/nginx 将子域指向单独的 IP 地址

使用 DNS/nginx 将子域指向单独的 IP 地址

我尝试将子域名指向不同服务器上的不同 IP 地址,但出于某种原因,它只是偶尔有效(比如说 20 次中有 1 次)。浏览 http//galera.domain.com 会抛出“响应时间过长”错误,并将 URL 更改为 https//galera.domain.com。直接浏览 IP 地址始终可以正常工作。

这是我当前的设置:

服务器 1 (nginx):
IP_ADDRESS_1。
已启用 HSTS [严格传输安全 (max-age=63072000; includeSubdomains)]
domain.com / www.domain.com 的 DNS 指向 IP_ADDRESS_1

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name domain.com www.domain.com;
    return 301 https://$server_name$request_uri;
}

server {

    # SSL configuration
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-domain.com.conf;
    include snippets/ssl-params.conf;

    root /var/www/html;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name domain.com;

    location / {
            try_files $uri $uri/ =404;
    }


    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
            deny all;
    }

}

这是服务器 1 的 /etc/nginx/snippets/ssl-params.conf 文件:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /etc/ssl/certs/dhparam.pem;

服务器 2(galera 集群 #1,phpmyadmin 在 apache 上运行): galera.domain.com 的
IP_ADDRESS_2
DNS 指向 IP_ADDRESS_2

<VirtualHost *:80>

    ServerAdmin [email protected]
    ServerName galera.domain.com
    DocumentRoot /usr/share/phpmyadmin

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>  

希望大家能够帮助阐明这个最有可能简单的问题。

编辑:在 domain.com 上启用了 HSTS [严格传输安全(max-age=63072000;includeSubdomains)]

编辑 2:添加了 /etc/nginx/snippets/ssl-params.conf 的代码

编辑 3:已解决。HSTS 阻止加载子域中的不安全内容。通过在 galera.domain.com 上安装 SSL 证书并使用与 domain.com 相同的协议(包括 HSTS)来修复

答案1

您需要与设置域安全策略的人员进行协调。此域已选择使用严格的传输安全性,在协调之前,您甚至不应该被允许创建用于 Web 服务器的子域。

相关内容