На моем сервере работают 2 веб-сайта: сайт Wordpress и веб-приложение, работающее на порту 8080. Я хочу указать mysite.com и www.mysite.com на сайт Wordpress, а app.mysite.com - на веб-приложение. используя NGINX.
Я сделал 2 отдельные конфигурации, как показано ниже -
mysite.com
server {
listen 443 ssl;
server_name www.mysite.com mysite.com;
< ssl configs >
include global/restrictions.conf;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
server {
listen 80;
server_name mysite.com www.mysite.com;
return 301 https://$host$request_uri;
}
app.mysite.com
server {
listen 443 ssl;
server_name app.mysite.com;
< ssl configs >
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr;
}
location /stream/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ~ /.well-known {
allow all;
}
}
server {
listen 80;
server_name app.mysite.com;
return 301 https://$host$request_uri;
}
Но когда я пытаюсь получить доступ к app.mysite.com, он перенаправляется на mysite.com. Как это исправить?
Спасибо!
Виноват. Ошибка была очень глупой. Символическая ссылка, которую я создал для веб-приложения, была неправильной, поэтому в действительности была конфигурация только для основного веб-сайта.
я бы посоветовал вам использовать return 301 https: // $ server_name $ request_uri;
по месту возврата 301 https: // $ host $ request_uri;
поскольку $ host будет включать все имена серверов и перенаправлять все на тот же хост.