Назад | Перейти на главную страницу

NGINX перенаправляет поддомены на основной домен

На моем сервере работают 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 будет включать все имена серверов и перенаправлять все на тот же хост.