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

геосервер nginx proxy_pass не работает

у меня есть эта конфигурация для доступа к геосерверу:

location /geoserver {
    proxy_set_header   Host             $host;
    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://localhost:8080/geoserver/;
    proxy_pass_header Set-Cookie;
    proxy_redirect off;
    }
}

все это работает нормально, когда я получаю доступ к веб-странице геосервера, но nginx не обрабатывает такие запросы:

http://localhost:8080/geoserver/ows?SERVICE=WMS&access_token=4r3irW5W3DboGs…7091932%2C-5009377.085697312%2C-10018754.17139462%2C-9.313225746154785e-10 

эта ошибка появляется в консоли:

GET http://localhost:8080/geoserver/ows?SERVICE=WMS&access_token=4r3irW5W3DboGs…7091932%2C-5009377.085697312%2C-10018754.17139462%2C-9.313225746154785e-10 net::ERR_CONNECTION_REFUSED

я хочу заменить nginx http://localhost:8080 с участием IP

Обновить

Я удалил косую черту, но некоторые запросы не работают

OPTIONS http://localhost:8080/geoserver/wms?SERVICE=WMS&REQUEST=GetCapabilities&TILED=true&VERSION=1.1.1 net::ERR_CONNECTION_REFUSED

я скопировал URL-адрес в браузере и заменил localhost:8080 с IP работает !!!

полные конфигурации:

upstream django {
    server unix:///tmp/uwsgi.sock;    # for a file socket
    }

server {
    listen      80;
    server_name XX.XX.XX.XX;
    charset     utf-8;

    #Max upload size
    client_max_body_size 1024M;   # adjust to tast

    location / {
        uwsgi_pass  django;
        include     /etc/nginx/uwsgi_params;
        }
    location /geoserver {
        proxy_set_header   Host             $host;
    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://localhost:8080/geoserver;
    proxy_pass_header Set-Cookie;
    proxy_redirect off;

        }
    }

В вашем вопросе у вас есть префикс местоположения и prox_pass оператор с URI. Где тебе нужно nginx для выполнения функции алиасинга location ценность и proxy_pass Оба URI должны заканчиваться на / или ни один из них не заканчивается / или отображаемый URI будет искажен.

location /geoserver {
    ...
    proxy_pass http://localhost:8080/geoserver;
    ...
}

Видеть этот документ для большего.

Однако в вашем случае вы сопоставляете /geoserver к /geoserver что бессмысленно, поэтому версия без URI proxy_pass хватит и будет эффективнее:

proxy_pass http://localhost:8080;