У меня есть веб-сайт, который позволяет пользователям создавать портфолио для своих веб-сайтов, они просто меняют свои записи A в своем домене и помещают IP-адрес моего сервера в свои записи, и он будет отображаться на их веб-сайте (user1.example.com). Моя проблема в том, что я купил домен для тестирования (example.com), и он направляет их на домашнюю страницу моего настоящего веб-сайта, где вы можете использовать эту услугу.
Единственный способ, которым пользователь может получить доступ к своему веб-сайту, - это: http://example.com:3000
- 3000 - это порт, на котором работает мое приложение Node.js. Моя конфигурация Nginx ниже, может кто-нибудь бросить мне кость?
server {
listen 80;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/ssl/example.com/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
server_name example.com *.example.com "";
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
root /opt/33i/;
# Perfect forward secrecy
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/example.com/dhparams.pem;
ssl_ciphers ;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Url-Scheme $scheme;
proxy_redirect off;
proxy_max_temp_file_size 0;
}
}
Любые идеи? Это сводило меня с ума!
Я думаю, проблема может быть в server_name
линия.
На данный момент он соответствует следующим видам запросов:
Host:
заголовок example.com
Host:
заголовок заканчивается на .example.com
Host:
заголовок отсутствуетЭто означает, что эта конфигурация не соответствует произвольным доменам, что похоже на то, что вы хотите.
Теперь, скорее всего, у вас есть еще один server
block в вашей конфигурации с помощью:
слушать 443 ssl default_server;
Виртуальный хост, содержащий эту директиву, является универсальным виртуальным хостом для запросов, которые иначе не совпадают.
Итак, чтобы решить вашу проблему, вам нужно удалить default_server
директива от server
заблокировать, где он сейчас, и добавить default_server
к этим блокам ' listen
директивы.