Когда я перехожу на sub.example.com, он просто переходит на index.html example.com и не использует конфигурацию поддомена.
# redirect all traffic to https
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
root /var/www/html/example;
index index.html index.htm index.php;
server_name example.com;
include /etc/nginx/ssl.conf;
client_max_body_size 0;
location / {
try_files $uri $uri/ /index.html /index.php?$args =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# With php7-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php7-fpm:
#fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}
server {
listen 443 ssl;
server_name sub.example.com;
include /etc/nginx/ssl.conf;
location / {
proxy_pass http://#internalip#/;
include /etc/nginx/proxy.conf;
}
}
IE: Когда я перехожу на example.com, он загружает /var/www/html/example/index.html, а когда я перехожу на sub.domain.com, он по-прежнему загружает /var/www/html/example/index.html вместо перенаправление на http: // # internalip # / как и должно. Любые идеи? Я, должно быть, делаю что-то не так с конфигурацией здесь.
Вы жестко запрограммировали постоянный (кэшируется браузерами на неопределенный срок) перенаправляет не только для доменного имени example.com, но, поскольку нет других серверов, определенных для простого http на порту 80, каждый (суб) домен и все HTTP-запросы перенаправляются на https://example.com
ты, наверное, хочешь что-то вроде
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
где вы создаете перенаправление на $host
имя, использованное в исходном запросе.
Обратите внимание, что вам нужно будет очистить кеш своего веб-браузера или использовать новое анонимное окно браузера для проверки и аннулирования кешированных постоянных перенаправлений после того, как вы изменили свою конфигурацию.