
RHEL Apacheサーバーの1つで奇妙な問題が発生しました。
実際には、リモートホストのポート80でリッスンしていません。ローカルに移動すると、http://localhost
メインページが開きます。リッスンポートを確認すると、インターフェイスのみがリッスンしているnetstat
ことがわかります。アイテムがなく、そのアイテムがそこにあるはずです。例:tcp6
:::80
tcp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
この問題について多くのフォーラムを検索してみましたが、提案された解決策のどれも効果がありませんでした。にhttpd.conf
変更しましたが、リモートホストからアクセスするためにポート80を開いていません。 IPtablesは最初から無効になっています。Listen 80
Listen 0.0.0.0:80
Listen 127.0.0.0:80
IPv4を受信するようにサーバーをどのように設定しますか?
答え1
assiduus@localhost:~/httpd-2.4.34$ ./configure --help | grep IPv6
--enable-v4-mapped Allow IPv6 sockets to handle IPv4 connections
assiduus@localhost:~/httpd-2.4.34$
この機能は、ソースからApache httpdをコンパイルするとデフォルトで有効になります。展開バイナリパッケージを使用した場合は、明らかにこのオプションが有効になります。
答え2
次の構成と同様のものを使用してください。
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /path/to/your/webroot/
...
</VirtualHost>
これ」:80"を使用すると、Webサーバーはポート80のすべてのIPアドレスをリッスンできます。ただし、新しく作成された仮想ホストプロファイルが有効になり、Webサーバーが再起動されるまでは適用されません。
新しい仮想ホスト構成を有効にします。
a2ensite domain.com.conf
Webサーバーの再起動
service apache2 restart
Webサーバーがipv4とipv6の両方でリッスンしていることを確認するには、次の点を確認してください。
netstat -plunt |grep ":80"
これが役立つ場合は教えてください:)