Ale*_*lds 1 httpd httpd.conf apache-2.2
我在 Fedora v14 上运行 Apache 2.2.17。我无法从浏览器访问正在运行的 Web 服务器,而且我也很难将其设置为侦听端口 443。
服务器httpd
正在运行:
[me@host ~]$ sudo ps -U root -u root u | grep httpd
root 6592 0.0 3.4 404620 17552 ? Ss 10:50 0:00 /usr/sbin/httpd -k graceful
Run Code Online (Sandbox Code Playgroud)
然后我停止服务:
[me@host ~]$ sudo apachectl stop
Run Code Online (Sandbox Code Playgroud)
然后我将Listen
指令设置/etc/httpd/conf/httpd.conf
为侦听端口 80 和 443:
Listen 1.2.3.4:80
Listen 1.2.3.4:443 https
Run Code Online (Sandbox Code Playgroud)
(IP 不是1.2.3.4
该主机的实际 IP。)
我检查了其他 Apache conf 指令以确保我有一个文档文件夹,所有用户都可以访问它,并且如果我没有指定index.html
等,它将显示文件夹的目录列表。
尝试启动时httpd
,出现配置错误:
[me@host conf]$ sudo apachectl graceful
(98)Address already in use: make_sock: could not bind to address [::]:443
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
Run Code Online (Sandbox Code Playgroud)
似乎没有其他服务在 TCP 端口 443(或端口 80)上运行:
[me@host conf]$ sudo netstat -tulpn | grep 443
[me@host conf]$ sudo netstat -tulpn | grep 80
Run Code Online (Sandbox Code Playgroud)
如果我注释掉 443Listen
指令并graceful
-restarthttpd
服务,它会启动并在进程列表中可见(通过ps
,如上所述),但我仍然无法通过 Web 浏览器访问主机。
我在设置 Apache 时忽略了什么吗?谢谢你的建议。
检查iptables规则:
iptables -nv -L
Run Code Online (Sandbox Code Playgroud)
要添加新规则,请编辑 /etc/sysconfig/iptables:
...
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
...
Run Code Online (Sandbox Code Playgroud)
要重新启动 iptables:
#service iptables restart
Run Code Online (Sandbox Code Playgroud)
要停止 iptables:
#service iptables stop
Run Code Online (Sandbox Code Playgroud)
对于调试使用 tcpdump:
# tcpdump -pn host YOU_IP and not port 22
or
# tcpdump -pn port 443 and icmp
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1040 次 |
最近记录: |