Nginx 多个域相同的 IP 不起作用

问题描述

我遇到了 Nginx 无法处理指向同一 IP 地址的多个域的问题。访问任一域时,它们都认为“catacombsfellowship.org.cnf”。访问 edmunddesoto.com 时,它的行为就好像它是 catacombsfellowship.org 并且我收到 SSL 证书错误,其中证书用于 catacombsfellowship.org。

当我自己运行任一域时,它们都可以正常工作。但是,它们不能无缝地协同工作。我做错了什么?

示例:

文件:edmunddesoto.com.cnf

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


server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name edmunddesoto.com default_server;
        root /var/www/html/edmunddesoto.com/live;
        index index.PHP index.html index.htm index.Nginx-debian.html;

        ssl_certificate /etc/ssl/certs/edmunddesoto.com.crt;
        ssl_certificate_key /etc/ssl/private/edmunddesoto.com.key;

        location / {
                        try_files $uri $uri/ /index.PHP?$args;
        }

        location ~ \.PHP$ {
                        include snippets/fastcgi-PHP.conf;
                        fastcgi_pass unix:/var/run/PHP/PHP7.4-fpm.sock;
        }

        location ~ /\.ht {
                        deny all;
        }
}

文件:catacombsfellowship.org.cnf

server {
    listen 80;
    listen [::]:80;
    server_name catacombsfellowship.org default_server;
    return 301 https://$host$request_uri;
}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name catacombsfellowship.org default_server;
        root /var/www/html/catacombsfellowship.org/live;
        index index.PHP index.html index.htm index.Nginx-debian.html;
        ssl_certificate /etc/ssl/certs/catacombsfellowship.org.crt;
        ssl_certificate_key /etc/ssl/private/catacombsfellowship.org.key;

        location / {
                        try_files $uri $uri/ /index.PHP?$args;
        }

        location ~ \.PHP$ {
                        include snippets/fastcgi-PHP.conf;
                        fastcgi_pass unix:/var/run/PHP/PHP5.6-fpm.sock;
        }

        location ~ /\.ht {
                        deny all;
        }
}

解决方法

好的,我想通了。问题是它以某种方式重定向到 www.* 域,而那些未在 server_name 指令中设置。因此,通过将 www.* 添加到 server_name 指令,它修复了它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...