反向代理简言之就是通过一台代理服务器,让Internet用户可以访问到内部网络上的服务器。
实验环境:一台带有两块网卡的OB服务器,一块连接外网1.1.1.1,一块连接内网192.168.100.1
1、开启apache的代理模块。修改httpd.conf文件,去掉下面的注释
- #LoadModule proxy_module /usr/lib/apache/modules/libproxy.so
- LoadModule proxy_module /usr/lib/apache/modules/libproxy.so
2、启用请求转发功能。找到<IfModule mod_proxy.c>模块,修改如下
- <IfModule mod_proxy.c>
- ProxyRequests Off
- <Directory proxy:*>
- Order deny,allow
- Allow from all
- </Directory>
- </IfModule>
3、配置反向代理。在httpd.conf文件中的Section 3: Virtual Hosts中进行virtualhost配置
- NameVirtualHost 1.1.1.1
- <VirtualHost 1.1.1.1>
- ServerName www.abc.com
- ProxyPass / http://192.168.100.2/
- ProxyPassReverse / http://192.168.100.2/
- SetEnv force-proxy-request-1.0 1
- SetEnv proxy-nokeepalive 1
- </VirtualHost>
还可以重定向到https协议的网址,前提是服务器上要先配置apache的ssl证书
- <VirtualHost 1.1.1.1>
- ServerName it.abc.com
- ProxyPass / https://192.168.100.3/
- ProxyPassReverse / https://192.168.100.3/
- SetEnv force-proxy-request-1.0 1
- SetEnv proxy-nokeepalive 1
- SSLEngine on
- SSLCertificateFile /etc/ssl/server.crt
- SSLCertificateKeyFile /etc/ssl/private/server.key
- </VirtualHost>
4、进行测试。对部署的内部服务进行访问时,要对DNS做相应的设置,即DNS可以正常解析到外网网卡上提供的域名
- www.abc.com 1.1.1.1
- it.abc.com 1.1.1.1
这时就可以通过域名对多台内部服务器进行映射访问了