Saya punya server dengan banyak alamat IP, dan saya hanya ingin Apache mendengarkan salah satunya. Kedengarannya bukan hal yang sulit untuk dilakukan, dan saya pernah melakukannya beberapa saat yang lalu, tapi kali ini saya mengalami masalah. Pertama, di sinilah saya sekarang, untuk pemahaman saya:
Setiap tempat Apache mendengarkan port 80, itu hanya mendengarkan pada IP yang benar.
/etc/apache2$ grep -R ":80" .
./sites-available/default:<VirtualHost 192.168.0.82:80>
./httpd.conf:<VirtualHost 192.168.0.82:80>
./ports.conf:NameVirtualHost 192.168.0.82:80
./sites-enabled/000-default:<VirtualHost 192.168.0.82:80>
Tidak disebutkan tentang mendengarkan pada 0.0.0.0.
/etc/apache2$ grep -R "0\.0\.0\.0" .
Namun ... Apache menolak untuk memulai.
/etc/apache2$ sudo /etc/init.d/apache2 start
* Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
[fail]
Jika seseorang bertanya, saya tidak terikat ke alamat itu:
/etc/apache2$ sudo netstat -nap | grep :80
tcp 0 0 192.168.0.83:80 0.0.0.0:* LISTEN 2822/node
Log kesalahan di /var/log/apache2/error.log
hanya mengatakan:
[Wed Aug 08 03:30:18 2012] [notice] caught SIGTERM, shutting down
Apakah saya melewatkan tempat di konfigurasi Apache? Apakah ada sesuatu yang saya tidak ingat untuk mencari? Mengapa ini tidak sesederhana yang saya ingat?
Listen 192.168.0.82:80
garis kritis , yang saya butuhkan. Saya memilih jawaban cjc karena masuk ke kedalaman yang lebih dalam mengapa garis itu diperlukan. Saya pikir menyebutkan komentar yang digunakan dalam versi Apache yang dikemas dengan CentOS adalah tambahan yang bagus. Tetapi karena semua orang tampaknya setuju secara umum bahwa jawabannya harus diberikan pada pauska, saya telah maju dan memberikannya kepadanya. Setelah semua, saya perhatikan dengan melihat revisi bahwa komentar pauska secara signifikan mempengaruhi jawaban cjc dalam bentuknya saat ini.