Я пытаюсь
перенаправлять весь трафик с www.example.com и example.com на old-www.website.com
проксировать весь трафик с example.com/forum (и www) на сервер форума @ 192.168.100.100
Я пробовал следующую конфигурацию, но она продолжает возвращать меня на мой старый веб-сайт. Когда я удаляю location /
форум не загружается и я получаю 404's
поскольку сервер пытается загрузить файлы @ example.com/
вместо того example.com/forum
server {
listen 80;
server_name www.example.com example.com;
location /forum/ {
proxy_pass http://192.168.100.100/;
proxy_redirect off;
proxy_set_header Host $host;
}
location / {
return 302 $scheme://www.old-site.com;
}
}
Как я могу это исправить?
Проблема в дополнительном /
в твоем proxy_pass
заявление. Это заставляет nginx использовать /
как URI вашего форума всегда.
Попробуй это:
location ~ /forum(/.+)? {
proxy_pass http://192.168.100.100$1;
proxy_redirect off;
proxy_set_header Host $host;
}
Здесь я предполагаю, что вам нужен URL-адрес http://www.example.com/forum/something
получить прокси на http://192.168.100.100/something
. Без совпадения регулярного выражения и $1
в proxy_pass
, это будет прокси для http://192.168.100.100/forum/something
.
Попробуйте это. Вот очень простой пример, который перенаправляет клиентов на новое доменное имя:
server {
listen 80;
listen 443 ssl;
server_name www.old-name.com;
return 301 $scheme://www.new-name.com$request_uri;
}