Я запускаю nginx (: 80) перед веб-сервером Apache (: 8080)
Конфигурация Nginx (фрагмент):
location / {
proxy_pass http://www.domain.tld:8080;
proxy_set_header X-Real-IP $remote_addr;
Если я установлю localhost вместо www.domain.tld, мой браузер будет перенаправлен на http: // локальный: 8080.
Правила перезаписи Apache:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://%{HTTP_HOST}/$1/ [L,R=301]
RewriteCond %{REQUEST_URI} !v2/
RewriteRule ^(.*)$ v1/$1 [L]
Все идет нормально.
Однако каждая ссылка (в которой используются относительные пути) отображается как http: //www.domain.tld: 8080 / стр. вместо того, чтобы оставаться на 80-м порту.
Есть ли способ решить эту проблему с помощью правил перезаписи? Я не хочу использовать абсолютные пути.
Спасибо
Решено добавлением этого в конфигурацию nginx:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;