Маскировка URL-адреса Nginx в другой домен

есть несколько подобных вопросов на SO, но ни один точно не мой, и мне не повезло, пытаясь адаптировать свои ответы до сих пор.

Я хочу сопоставить URL http://sub.example.com to https://123.12.12.12/path, Так что браузер по-прежнему показывает URL http://sub.example.com.

мой конфигурационный файл Nginx выглядит так:

server {
    listen 80;
    server_name sub.example.com;

    location / {
        proxy_pass https://123.12.12.12;
        rewrite ^/$ /path last;
    }
}

маршрутизация работает здесь, но URL-адрес отображается http://sub.example.com/path. Как сделать так, чтобы он отображался только http://sub.example.com?

1 ответов


server {
    listen 80;
    server_name sub.example.com;

    location / {
        proxy_pass https://123.12.12.12/path;
    }
}

вот как это работает. Если proxy_pass содержит часть местоположения-текущее местоположение будет заменено на указанное. http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

но это помощь только для http-запроса и перенаправления http. Если приложение создает html со ссылками https://123.12.12.12 - он все еще не изменился. В этом случае вы можете попробовать ngx_http_sub_module.