我试图建立一个网站,从一个GeoServer实例访问WMS服务,与该网站相同的DigitalOcean液滴。液滴是一个Ubuntu18.04服务器,带有- tomcat8 -PostgreSQL10-OpenJDK-8-JDK-无头- nginx
我从web存档中部署了GeoServer,如果我使用本地机器上的ssh连接并将液滴8080端口映射到本地计算机上的端口63334,我可以从GeoServer访问GeoServer web应用程序,我也可以在简单的传单地图中使用WMS服务,使用http://localhost:63334/bcp_geoserver/LCFP/wms作为本地机器上的HTML文件中的地址。因此,GeoServer似乎工作正常。
但是,如果我将HTML中的地址更改为http://localhost:8080/bcp_geoserver/LCFP/wms并将其上传到液滴上的nginx网站根文件夹,如果我试图通过互联网访问该网站,就会收到拒绝连接的错误。我认为这是因为我没有一个正确的Nginx配置这个网站。是否有方法配置Nginx,以便网站可以使用WMS服务?
这是我目前的Nginx配置,这个网站:
server {
listen 80;
server_name foo.bar;
root /var/www/foo.bar/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location /bcp_geoserver {
proxy_pass http://localhost:8080/bcp_geoserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}我没有部署防火墙,我在子域(也在localhost:8080)上有另一个tomcat,Nginx正在用proxy_pass正确地为它服务。
发布于 2019-05-23 15:37:04
我无法弄清楚到底是什么问题(无论是Nginx,还是与同一端口上的其他was应用程序冲突,还是其他问题),所以我改变了方向。我安装了另一个tomcat副本,并将其设置为使用默认端口,如下页所示:https://linoxide.com/ubuntu-how-to/install-tomcat-8-ubuntu-16-04-multiple-instances/
然后,我添加了一个新的子域,指向我的液滴IP: gs.foo.bar
然后,我将Geoserver.war部署到新的tomcat实例中,方法是将它重命名为ROOT.war,然后将它放在webapp文件夹中。
然后,我为站点创建了以下Nginx配置:
server {
client_max_body_size 100m;
server_name gs.foo.bar;
location / {
proxy_pass http://127.0.0.1:8081;
}然后,对于html文件中wms服务的地址,我使用了http://gs.foo.bar/LCFP/wms。它起作用了。不过,这使得Geoserver webapp暴露在互联网上,所以我更改了默认的管理密码。
https://serverfault.com/questions/968208
复制相似问题