Назад | Перейти на главную страницу

Nginx URL-прокси на сервер

Я пытаюсь

Я пробовал следующую конфигурацию, но она продолжает возвращать меня на мой старый веб-сайт. Когда я удаляю 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;
}