Apache-2.2
Apache 無法更改監聽 IP 地址
我無法讓 Apache 監聽特定的 IP 地址。這是一個本地網路伺服器,不是公共的。
我在使用 Apache 2.2 的 CentOS 5.11 上。
預設配置 httpd.conf 效果很好,但只監聽伺服器的靜態 IP 地址
10.0.0.101:80
。我附加
Listen 10.0.0.103:80
到 httpd.conf 的末尾,但得到錯誤:Starting httpd: (99)Cannot assign requested address: make_sock: could not bind to address 10.0.0.103:80
我正在關注有關製作高可用性集群的教程,可以在https://www.howtoforge.com/high_availability_heartbeat_centos看到。如果我只能讓 Apache 從那個地址開始,我會很高興。
我正在使用這個舊版本的 CentOS,因為我正在嘗試使用舊硬體而不是丟棄它。
我在 Google、CentOS 站點和 Apache 的站點上連續查找了 4 個小時,但沒有找到任何解決方案。
Apache 不會綁定到您的 VIP,因為它沒有在任何網路介面上配置。
要允許這種情況發生,您需要設置一個 sysctl:
sysctl net.ipv4.ip_nonlocal_bind=1
然後 Apache 可以進行綁定,但是在將 VIP 分配給機器之前,當然不會有流量流動。
在你的 httpd.conf 檢查你是否有一個舊的“Listen”指令處於活動狀態。通過附加新指令,您可以使兩個指令發生衝突。
否則通過執行以下命令檢查另一個程序是否正在偵聽埠 80:
netstat -plant
希望你看到這樣的東西並殺死它:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 939/webserver