我一直在环顾四周,尝试在apache 2.2.15服务器的httpd.conf文件中进行不同的配置,但我找不到解决问题的方法。所以我在这里张贴它以获得一位大师的帮助。
我在CentOS 6.7服务器上的/etc/httpd/conf/httpd.conf上有这个配置。
Listen 80
Listen 8080
<VirtualHost *:8080>
ServerName example.com (Corrected after the comment)
DocumentRoot /var/www/dbgui
ErrorLog logs/dbgui-8080-error_log
<Directory /var/www/dbgui>
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/laravel/public
ErrorLog logs/example-80-error_log
<Directory /var/www/laravel>
AllowOverride All
</Directory>
</VirtualHost>
当我浏览到http://example.com时,我会看到Laravel页面(正如预期的那样),但当我浏览到http://example.com:8080时,我得到 “连接已超时” < /强>
我已经在IP表上打开了8080的端口
output of netstat -nltup
tcp 0 0 :::8080 :::* LISTEN 13097/httpd
tcp 0 0 :::80 :::* LISTEN 13097/httpd
和
Output of iptables -L -nv
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
669 41648 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
我在日志中看不到任何内容。虽然似乎apache正在侦听端口8080,但没有任何东西可以通过并记录8080端口。
有任何解决此问题的建议吗?
答案 0 :(得分:0)
该端口不应该是ServerName
指令的一部分。
请从ServerName
指令中删除端口,如下所示:
<VirtualHost *:8080>
ServerName example.com
DocumentRoot /var/www/dbgui
ErrorLog logs/dbgui-8080-error_log
<Directory /var/www/dbgui>
AllowOverride All
</Directory>
</VirtualHost>
请参阅apache.org上的示例for reference
答案 1 :(得分:0)
您应该检查NameVirtualHost
param以确保可以从您的IP /端口组合猜测虚拟主机
答案 2 :(得分:0)
谢谢你们的帮助。经过大量的研究和尝试不同的事情,就在扔椅子之前,我终于解决了它。这里是: 确保iptables正确打开tcp / 8080的端口和协议后 接下来,仔细检查VirtualHost设置是否正确,以上设置是否正确。 我做的下一件事是确保selinux不会阻止端口8080,或者将它们全部禁用或将其设置为许可模式。
#semanage port -l | grep http
http_cache_port_t tcp 3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
可以看出,端口8080列在http_cache_port_t中,现在确保selinux不阻止
#setsebool -P httpd_can_network_memcache 1
然后列出它以确保它设置为“on”或“1”
# getsebool httpd_can_network_memcache
以上命令都没有解决问题,而我正在调查日志/var/log/audit/audit.log
和/ var / log / httpd / access_log和/var/log/httpd/error_log
我找不到与端口8080有关的任何错误
毕竟,我开始认为它没有意义,因为一切配置正确,但我无法通过。所以我只是看了一下iptables输出:
#iptables -L -nv
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
25 1316 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
24 1240 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
其中显示0个数据包和0个字节来自服务器。我找到了这个网站
http://www.yougetsignal.com/tools/open-ports/
显示端口8080被阻止。虽然把椅子放在空中作为最后的手段:),我联系了ISP,我被告知服务器前面有防火墙,端口8080被阻塞,当他们打开它时,我把椅子放下,因为我终于有了访问权限