如果您想使用apache/ httpd
来自 PHP 的请求以及运行在不同端口上的任何其他服务器的请求,比如说端口 8080 上的 tomcat,您可以使用 apache/httpd 作为“代理”并映射一个将由另一个服务器提供的 URL服务器。这是使用ProxyPass
ProxyPassReverse
配置完成的。
例如:如果您希望http://localhost/php由 PHP 提供服务,而http://localhost/tomcat由 tomcat 提供服务,那么您必须在 httpd.config/apache.config [apache2.config] 中进行以下更改。配置取决于您使用的 apache 版本]:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Uncomment these to proxy FTP or HTTPS
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
<VirtualHost *:80>
# Your domain name
# ServerName Domain_NAME_HERE
ProxyPreserveHost On
ProxyPass /tomcat http://localhost:8080/
ProxyPassReverse /tomcat http://localhost:8080/
# The location of the HTML files, and access control information
DocumentRoot /var/www
<Directory /var/www>
Options -Indexes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
如果您正在运行httpd
并且centos
您可能会收到错误Apache Mod_proxy '[Error] (13)Permission Denied'
,请按照此链接执行以下命令:
/usr/sbin/setsebool -P httpd_can_network_connect 1
我建议您阅读mod_proxy。
参考:Redhat mod_proxy 配置