Я настроил веб-сервер для просмотра моих репозиториев (экземпляр Gitalist) на http: // локальный: 3000 и я хочу настроить прокси с помощью nginx.
Я хочу, чтобы запрос передавался в представление моего репозитория при получении URI типа DOMAIN / git /.
Моя текущая конфигурация nginx была объявлена следующим образом:
location /git {
proxy_pass http://localhost:3000/;
}
Запросы передаются на сервер по прокси, но ни одно из изображений / ссылок или CSS не может быть разрешено, поскольку они указывают на "http: // localhost: 3000 / logo.png" например.
РЕДАКТИРОВАТЬ
Если я прокси_pass на фактический адрес сервера, он работает:
location /git {
proxy_pass http://192.168.1.111:3000/;
}
Но должен быть способ скрыть фактический адрес сервера при проксировании.
Попробуйте решение, представленное в вики nginx:
http://wiki.nginx.org/LikeApache
результат должен быть примерно таким.
location /git {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.111:3000/;
}
В случае, если URI являются абсолютными, решением может быть использование Nginx HTTPSubModule или переключиться на Apache с его mod_proxy_html модуль. Они оба могут изменять ответ, полученный от внутренних серверов, и производить некоторые замены.
Пути не проксируются должным образом. См. Эту ссылку:
http://www.ubuntugeek.com/using-nginx-as-a-reverse-proxy-to-get-the-most-out-of-your-vps.html
Если приложение создает HTML-код с абсолютными путями к графике / сценариям / страницам и браузер запрашивает его - ни приложение, ни браузер не знают, что вы пытаетесь скрыть приложение под /git
path, поэтому браузер попытается загрузить их по абсолютным путям. Вся идея работала бы, если бы Nginx мог переписывать HTML, но это невозможно.
Если вы генерируете абсолютные ссылки, используя заголовок Host, отправленный в запросе, тогда вы должны установить Nginx чтобы установить это в исходное значение заголовка Host, добавив:
proxy_set_header Host $http_host;
в блок локации.