у меня есть эта конфигурация для доступа к геосерверу:
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;