Обслуживание двух веб-сайтов с одним и тем же Nginx на одном сервере ubuntu перенаправление на один и тот же веб-сайт

#node.js #ubuntu #nginx

#node.js #ubuntu #nginx

Вопрос:

Я пытаюсь обслуживать два разных веб-сайта на моем сервере Ubuntu 16.04.

Это конфигурация Website1 в /etc/nginx/sites-available/website1.com :

 server {
        listen 80;
        listen [::]:80;

        server_name website1.com www.website1.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;

        server_name website1.com www.website1.com;
        ssl_certificate /etc/nginx/ssl/website1.com.domain.crt;
        ssl_certificate_key /etc/nginx/ssl/website1.com.intermediate.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH AESGCM:EDH AESGCM:AES256 EECDH:AES256 EDH';

        location / {
                proxy_pass https://127.0.0.1:1337;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }
}
 

И это конфигурация Website2 в /etc/nginx/sites-available/website2.com :

 server {
        listen 80;
        listen [::]:80;

        server_name website2.com www.website2.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;

        server_name website2.com www.website2.com;
        ssl_certificate /etc/nginx/ssl/website2.com.domain.crt;
        ssl_certificate_key /etc/nginx/ssl/website2.com.intermediate.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH AESGCM:EDH AESGCM:AES256 EECDH:AES256 EDH';

        location / {
                proxy_pass https://127.0.0.1:5000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }
}
 

Эти два веб-сайта, с которыми я пытаюсь работать nginx , представляют собой два nodejs приложения. Один прослушивает порт 1337 (website1), а другой — порт 5000 (website2).

Если я посещаю URL-адрес https://website1.com Я получаю доступ к правильному веб-сайту, веб-сайту1.

Если я посещаю URL-адрес https://website2.com Я захожу не на тот веб-сайт, он показывает мне website1 вместо website2. (URL-адрес в верхней строке http://website2.com с предупреждением для SSL ).

Как я могу обслуживать два разных веб-сайта, используя одну и ту же службу nginx на одном сервере Ubuntu?

Комментарии:

1. Что в вашем /etc/nginx/sites-enabled каталоге? 🙂

2. Связанные файлы на сайтах-доступны: website1.com и website2.com . Я выполнил эту команду ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/ и то же самое для website2.com

3. Может показаться глупым, но вы перезапустили / перезагрузили nginx sudo service nginx reload , чтобы указать ему использовать ваши «новые» файлы конфигурации? Также sudo nginx -t является победителем для поиска ошибок в ваших файлах конфигурации.

4. Конечно, я выполнил эти шаги… Я думаю, что это может быть возможной проблемой с SSL-сертификатами… странно то, что если я удаляю listen 443 часть из конфигурации, я каждый раз перенаправляюсь website1 .

Ответ №1:

Проблема перенаправления связана с недействительным SSL сертификатом. Я пытаюсь выяснить, как сделать его действительным.

Итак, nginx конфигурация в порядке.