apache2端口转发和反向代理

主要利用两个模块proxy和proxy_http:

apache2服务器程序的主要文件主要在/etc/apache2文件夹中

  • 启用proxyproxy_http两个模块
1
2
3
4
ln -s /etc/apache2/mods-available/proxy.load  /etc/apache2/mods-enabled/proxy.load

ln -s /etc/apache2/mods-available/proxy_http.load  /etc/apache2/mods-enabled/proxy_http.load

模块启用后

  • /etc/apache2/sites-available/000-default.conf文件中添加
1
2
3
4
5
6
7
8
ServerName 你的域名
ServerAdmin webmaster@localhost
DocumentRoot 网站根目录
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPass / http://127.0.0.1:目标端口号/
ProxyPassReverse / http://127.0.0.1:目标端口号/

  • /etc/apache2/ssl/文件夹中上传你的ssl证书
  • /etc/apache2/sites-available/default-ssl.conf文件中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ServerAdmin webmaster@localhost
ServerName 你的域名
Order deny,allow
Allow from all
DocumentRoot 网站根目录
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLCertificateFile /etc/apache2/ssl/你的域名_public.crt
SSLCertificateKeyFile /etc/apache2/ssl/你的域名.key
SSLCertificateChainFile /etc/apache2/ssl/你的域名_chain.crt
<FilesMatch ".(cgishtmlphtmlphp)$">
SSLOptions +StdEnvVars

SSLOptions +StdEnvVars

ProxyRequests Off
ProxyPreserveHost On

ProxyPass / http://127.0.0.1:目标端口号/
ProxyPassReverse / http://127.0.0.1:目标端口号/

  • 重启apache2
1
2
/etc/init.d/apache2 restart