Nginx URL masking to a different domain Nginx URL masking to a different domain nginx nginx

Nginx URL masking to a different domain


server {    listen 80;    server_name sub.example.com;    location / {        proxy_pass https://123.12.12.12/path;    }}

Thats how it works. If proxy_pass contains locations part - current location will be replaced to specified. http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

But it's help only for http request and http redirects. If application create html with links https://123.12.12.12 - it's still unchanged. In this case you can try ngx_http_sub_module.


I did like this:

server {    listen 80;    listen [::]:80;    listen 443 http2 ssl;    listen [::]:443 http2 ssl;    server_name domain1;    if ($request_method ~* OPTIONS|GET|HEAD) {        return 301 https://domain2$request_uri;    }    location ~* api {        proxy_pass https://domain2$request_uri;    }}

Because post-requests will cause a 405 error when redirecting.