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

Обратный прокси Nginx - запросы по-прежнему возвращают порт 80

Я пытаюсь использовать nginx в качестве прокси-сервера для двух серверов веб-логики. Порты в weblogic - это 23823 и 23824, и я хочу, чтобы они оба были доступны с порта 8888 и отличались контекстным путем. Я пробовал эту конфигурацию:

    listen 8888;
    server_name vead03;

    location /app1 {
            proxy_pass  http://127.0.0.1:23823;
            proxy_redirect  off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /app2 {
            proxy_pass  http://127.0.0.1:23824;
            proxy_redirect  off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Я могу получить доступ к обоим серверам через порты 8888 без проблем, но когда запрос попадает на сервер, я звоню request.getServerPort(), Я получаю 80 по какой-то причине. Понятия не имею, откуда взялось это сообщение. Порт 80 отсутствует в конфигурации nginx, и я определенно не использовал его в Weblogic. Это серьезная проблема, потому что приложение ожидает получить 8888а не 80.

Решение было довольно простым: вместо

proxy_set_header Host $host;

Мне пришлось использовать

proxy_set_header Host $host:$server_port;