适用于公司只有一个固定ip,但是需要发布多台web服务器。(包括但不限于仅此一种情况)
服务器信息:
Proxy Server:192.168.1.3
Windows Server:192.168.1.2
客户端信息:
windows 7 :192.168.1.8
修改系统hosts,实现域名解析:
www.windows.com 192.168.1.3(实际服务器ip为1.2)
www.linux.com 192.168.1.3
要求访问www.linux.com直接访问到192.168.1.3,访问www.windows.com代理到192.168.1.2
查看apache是否支持代理
[root@svn ~]# grep proxy /etc/httpd/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
yum安装的apche默认安装了proxy模块,如果是源码编译,需要加参数–enable-proxy,这里暂不考虑源码安装。
[root@svn conf]# vi httpd.conf
NameVirtualHost *:80 //编辑apache主配置文件,打开基于域名的虚拟主机支持
include conf/vhost_*.conf //加载虚拟主机配置文件
[root@svn conf]# vi vhost_linux.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/linux
ServerName www.linux.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
[root@svn conf]# vi vhost_win.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.windows.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://www.windows.com
ProxyPassReverse / http://www.windows.com
</VirtualHost>
重启apche测试。
通过。
注意:
下面要啰嗦一下,但很重要。
因为在测试环境中,客户端需要将www.windows.com和www.linux.com解析到192.168.1.3
在代理服务器中需要修改hosts文件将www.windows.com解析到192.168.1.2,如果不修改,页面是打不开的。因为是在内网实现,对公网没有影响。
在192.168.1.2服务器中的iis还可以继续实现基于域名的虚拟主机。这样可以方便代理服务器对192.168.1.2实现多个域名的代理。
在公网环境中,域名解析到实际的代理服务器,在内网代理服务器中,修改hosts,指定域名的内网ip。
(似乎写的比较啰嗦)
apache中proxy模块参考文档:https://www.rootop.org/ApacheManual/Apache2.2_zh_CN/mod/mod_proxy.html
ProxyPass //一个远端服务器映射到本地服务器的URL空间中
ProxyPassReverse //调整由反向代理服务器发送的HTTP应答头中的URL
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1935.html