Apache虚拟主机和反向代理无法在无特权端口中工作



我有一台运行在RedHat 6.4主机上的apache 2.2.15 Web服务器,对此我的权限有限。

我有一个httpd实例在我拥有的目录中运行。这个实例有自己的etc、log、htdocs、conf等,并有指向Apache主bin和模块的符号链接。

DNS人员已安排myinstance.example.com指向服务器的ip地址。

我还在httpd.conf中配置了VirtualHosts,因为将来我可能需要在该服务器上运行多个实例。

我的VirtualHost的htttpd.conf中的Listen指令被设置为8081端口,所以如果我转到myinstance.example.com:8081,VirtualHost的htmldocs中的index.html就会显示在我的浏览器中。

我现在想做的是从url中"删除"端口号,并让myinstance.example.com解析到8081中的VirtualHost。

我在VirtualHost的httpd.conf 的末尾添加了以下块

<VirtualHost *:8081>
    ServerAdmin me@myemailaddress.com
    DocumentRoot /apps/LAMP/dev/appname/hostname/htdocs
    ServerName myinstance.example.com
    ProxyPreserveHost On
    ProxyPass / myinstance.example.com:8081/
    ProxyPassReverse / http://myinstance.example.com:8081/
    ErrorLog logs/error.log
    CustomLog logs/access.log common
</VirtualHost>

在同一个文件中,这些行也存在:

LoadModule rewrite_module modules/mod_rewrite.so
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_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
.
.
.
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On

我使用启动我的Apache实例

/usr/sbin/httpd -d /apps/LAMP/dev/appname/hostname -DPHP5 -f /apps/LAMP/dev/appname/hostname/etc/httpd.conf

当我在firefox浏览器中指向myinstance.example.org(没有端口号)时,我会得到"无法连接错误",error.log中的最新条目似乎与该问题无关。

[Tue Oct 07 13:59:28 2014] [error] (2)No such file or directory: mod_mime_magic: can't read magic file /apps/LAMP/dev/appname/hostname/conf/magic
[Tue Oct 07 13:59:28 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Oct 07 13:59:28 2014] [error] (2)No such file or directory: mod_mime_magic: can't read magic file /apps/LAMP/dev/appname/hostname/conf/magic
[Tue Oct 07 13:59:28 2014] [notice] Digest: generating secret for digest authentication ...
[Tue Oct 07 13:59:28 2014] [notice] Digest: done
[Tue Oct 07 13:59:28 2014] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- resuming normal operations
[Tue Oct 07 13:59:51 2014] [error] server reached MaxClients setting, consider raising the MaxClients setting

你知道我做错了什么吗?有什么建议吗?

首先我要消除所有的错误。引起我注意的可能是一个引人注目的例子是:

[error] server reached MaxClients setting

考虑提高MaxClients设置

它是通过使用端口80中的主Apache实例作为反向代理来修复的。

我在/etc/httpd/conf/httpd.conf 的末尾添加了这个

#Using host ip address
<VirtualHost 10.18.1.20:80>    
    ServerAdmin me@example.com
    #DocumentRoot /apps/LAMP/dev/appname/hostname/htdocs
    ServerName myinstance.example.com
    ProxyPreserveHost On
    ProxyPass / http://myinstance.example.com:8081/
    ProxyPassReverse / http://myinstance.example.com:8081/
    ErrorLog logs/error.log
    CustomLog logs/access.log common
</VirtualHost>

最新更新