启动 nginx
- 解压 nginx 到指定目录
- 在 nginx 根目录下,通过以下命令启动 nginx:
start nginx
退出 nginx 命令如下:
nginx –s quit
- 验证 nginx 正常启动,有以下两种方式:
- 打开任务管理器,查看 nginx 进程是否已启动。
- 访问 http://127.0.0.1 或 http://localhost 时,页面出现“Welcome to nginx!”字样,则代表 nginx 已成功启动。
配置 nginx
打开【nginx 安装路径】\conf\nginx.conf 文件,修改 http 节点下的 server 节点内容如下:
server {
listen 192.168.120.42:8000;
server_name www.myiserver.com;
location /iserver{
proxy_pass http://192.168.112.217:8090/iserver;
#proxy_set_header Host $host:8000;
proxy_set_header ProxyHost $host:8000; }
}
- Listen:用于设置代理后的服务监听端口,默认为 80,建议不要使用默认端口。
- server_name:用于设置代理后的服务器名称,一般使用代理服务器的域名。
- proxy_pass:用于设置需要转发的 GIS 服务地址,可以是 IP 地址形式,也可以是域名形式。
- proxy_set_header:设置转发请求的请求头,只需要设置其中的服务地址。如果不设置请求头中的服务地址,则访问反向代理后的服务时,服务中的页面链接还是指向原始的 GIS 服务器而不是当前地址。可以通过 Host 或 ProxyHost 两种方式设置:
- Host:nginx 提供的参数,使用方式如:proxy_set_header Host $host:8000。设置 Host 参数后,可能导致当前反向代理服务器中的其他服务不可用。
- ProxyHost:为 SuperMap 自定义的参数,使用方式如:proxy_set_header ProxyHost $host:8000。推荐使用 ProxyHost 来设置请求头中的服务地址。
如果 Nginx 代理后的 iServer 服务注册到 iPortal 门户中,该服务又经过了 iPortal 的服务代理,为了保证经过两次代理后的 iServer 服务能够正常访问,建议以上 Host 参数和 ProxyHost 参数设置为:Host $http_host 和 ProxyHost $http_host。
保存上述修改,重启 nginx 使其生效。重启命令如下所示:
nginx -s reload
如果需要配置多 iServer 的反向代理,您可以通过在 nginx.conf 中配置多个 server 节点实现。
访问服务
访问反向代理后的服务地址 http://192.168.120.42:8000/iserver,即可获得与访问原服务器相同的内容。
您还可以将192.168.120.42 映射为域名,即在 C:\Windows\System32\drivers\etc\hosts 中,添加:
192.168.120.42 www.myiserver.com
然后就可以通过该域名访问反向代理后的服务,即 http://www.myiserver.com:8000/iserver。