目录

上一个主题

12.2. 删除未使用的服务

下一个主题

12.6. 避免服务故障


12.5. 设置代理

无论您是在Tomcat上使用GeoServer还是安装了 Jetty , 直接将其公开给用户不是一个好主意,特别是如果它们在Internet上。 一个更安全的选择是使用更稳定的Web服务器, 例如 Apache httpd —网络上最流行,使用最广泛的Web服务器之一。 要从网络服务器公开GeoServer或更一般的Java应用程序, 您需要在Web服务器上设置代理。 用户将指向别名,他们的请求将被重定向到Tomcat, 更安全地部署在受保护的LAN中。

12.5.1. 操作时间–配置代理

我们将配置Apache HTTP web服务器作为GeoServer的代理。 首先,我们需要让它工作;您将了解到,就像许多其他开源项目一样, 这是非常简单的!

1.要在Linux上安装Apache,可以使用分发存储库。 在编写本文时,它为Ubuntu安装了2.2.22版本。 您还可以从 http://httpd.apache.org/download.cgi . 如果您在Windows上,以下行是唯一的方法:

~$ sudo apt-get install apache2

2.如果服务器未在DNS上注册,则应在站点的配置文件中插入完整的主机名。 打开以下文件:

~$ sudo vi /etc/apache2/sites-available/default

3.在文件的第一行插入以下代码:

~$ServerName ubuntu1204x64vm

请注意,如果您手动安装Apache或在Windows计算机上, 则文件和文件夹位置与所示位置不同。

4.将浏览器访问http://localhost。如果安装成功, 您应该看到以下内容! 信息:

image272

图 12.8 image272

5.代理功能包含在一些可选模块中。您可以找到系统上可用的模块:

~$ ls /etc/apache2/mods-available | grep

proxy proxy_ajp.load
proxy_balancer.conf
proxy_balancer.load
proxy.conf
proxy_connect.load
proxy_ftp.conf
proxy_ftp.load
proxy_http.load
proxy.load
proxy_scgi.load

6.要配置代理,您需要 proxy 和 proxy_ajp 模块。 使用命令行工具a2enmod启用它们 . 之后,您需要重新启动Apache服务:

~$ sudo a2enmod proxy proxy_ajp
~$sudo service apache2 restart

7.现在您将配置一个代理;编辑 http.conf 文件:

~$ sudo vi /etc/apache2/httpd.conf

8.你必须插入 ProxyPass Apache配置文件中的指令。使用以下语法, 您将通知web服务器每个传入的请求 / geoserver 将转发到端口上的主机 8009 使用 ajp 协议:

ProxyPass /geoserver ajp://localhost:8009/geoserver
<Location /geoserver>
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

9.现在打开浏览器并指向 http://localhost/geoserver/web/

image273

图 12.9 image273

10.它起作用了!现在可以使用指向web服务器的GeoServer并忽略GeoServer的部署位置。

刚刚发生了什么?

您学习了将Apache配置为代理的基本方法。为安全性正确配置web服务器远远超出了本书的范围, 但是您应该记住,Tomcat和Jetty公开的HTTP协议并不适合真正的Internet使用。 您应该始终避免在DMZ中部署GeoServer( http://en.wikipedia.org/wiki/DMZ_(computing) )