#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
конфигурация в порядке.