Субдомен маски Ngnix на URL с другого субдомена с параметрами - PullRequest
0 голосов
/ 18 июня 2019

Можно ли замаскировать субдомен, чтобы он указывал на другой субдомен, например, так: sub.domain.com до sub2.domain.com/example/example2.

Мне удалось получить это с помощью конфигурации nginx:

server {
listen 443 ssl http2; # managed by Certbot
<!-- ssl_certificate goes here -->
server_name sub.domain.com;

rewrite ^/?$ https://sub2.domain.com/example/example2 permanent;
}

Но проблема с этим конфигом заключается в том, что при переходе на sub.domain.com вы перенаправляетесь на sub2.domain.com/example/example2 вместо простого маскирования URL.

И если я пойдуна sub.domain.com/test вместо перехода на sub2.domain.com/example/example2/test он просто показывает страницу 404.

1 Ответ

0 голосов
/ 18 июня 2019

Наконец-то!Я понял это сам.

Вместо rewrite мне пришлось использовать proxy_pass.И чтобы продлить URL, мне просто нужно было добавить / в конец URL:

location / {
   proxy_pass   https://sub2.domain.com/example/example2/; <-- Note the slash at the end
   proxy_redirect off;
   proxy_set_header X-Real-IP sub2.domain.com;
   proxy_set_header X-Forwarded-For sub2.domain.com;
   proxy_set_header Host sub2.domain.com;
}

Полный код:

server {
   listen 443 ssl http2; # managed by Certbot

   <!-- ssl_certificate goes here -->

   server_name sub.domain.com;

   location / {
      proxy_pass   https://sub2.domain.com/example/example2/;
      proxy_redirect off;
      proxy_set_header X-Real-IP sub2.domain.com;
      proxy_set_header X-Forwarded-For sub2.domain.com;
      proxy_set_header Host sub2.domain.com;
   }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...