LinuxでApache HTTPポートを変更する方法


ある[ Apache HTTP ]サーバーは、今日インターネットで最も使用されているWebサーバーの1つですが、その柔軟性、安定性、および多数の機能を備えています。ライバル Nginx

Apacheの最も重要な機能のいくつかには、実際にサーバーを停止したり、さらに悪いことに、新しいモジュールが追加されて特別な役割が果たされるたびにソフトウェアをコンパイルすることなく、実行時に異なるタイプのモジュールをロードして実行する機能が含まれます。これは、Webルートディレクトリに固有のWebサーバー設定を変更する可能性があります。

デフォルトでは、Apacheウェブサーバーは着信接続を待ち受けてポート 80 にバインドするように指示されています。 TLS設定を選択した場合、サーバーはポート 443 で安全な接続を待機します。

Apache Webサーバーに、標準Webポート以外のポートでWebトラフィックをバインドしてlistenするように指示するには、将来のバインド用に新しいポートを含む新しいステートメントを追加する必要があります。

Debian/Ubuntu ベースのシステムでは、変更が必要な設定ファイルは /etc/apache2/ports.conf ファイルと RHEL/CentOS ベースです。ディストリビューションは /etc/httpd/conf/httpd.conf ファイルを編集します。

あなた自身のディストリビューション特有のファイルをコンソールのテキストエディタで開き、以下の抜粋に示すように新しいportステートメントを追加してください。

# nano /etc/apache2/ports.conf     [On Debian/Ubuntu]
# nano /etc/httpd/conf/httpd.conf  [On RHEL/CentOS]

この例では、ポート 8081 で接続を待機するように Apache HTTP サーバーを設定します。次の図に示すように、Webサーバーがポート 80 で待機するように指示するディレクティブの後に、必ずこのファイルにbelowステートメントを追加してください。

Listen 8081

上記の行を追加した後は、独自の仮想ホスト要件に応じて、バインディングプロセスを開始するために、 Debian/Ubuntu ベースの配布でApache仮想ホストを作成または変更する必要があります。

CentOS/RHEL ディストリビューションでは、変更はデフォルトの仮想ホストに直接適用されます。以下のサンプルでは、ウェブサーバーのデフォルトの仮想ホストを変更し、 80 ポートから 8081 ポートまでのウェブトラフィックを待機するようにApacheに指示します。

次の画像に示すように、 000-default.conf ファイルを開いて編集し、ポートを 8081 に変更します。

# nano /etc/apache2/sites-enabled/000-default.conf 

最後に、変更を適用してApacheを新しいポートにバインドするには、デーモンを再起動し、netstatまたは ssコマンドを使用してローカルネットワークソケットテーブルを確認します。リスニング中のポート 8081 がサーバーのネットワークテーブルに表示されます。

# systemctl restart apache2
# netstat -tlpn| grep apache
# ss -tlpn| grep apache

また、ブラウザを開いてポート 8081 でサーバーのIPアドレスまたはドメイン名に移動することもできます。 Apacheのデフォルトページがブラウザに表示されます。ただし、Webページを閲覧できない場合は、サーバーコンソールに戻って、ポートトラフィックを許可するように適切なファイアウォール規則が設定されていることを確認してください。

http://server.ip:8081 

CentOS/RHEL ベースのLinuxディストリビューションで、Apacheに必要なSELinuxルールを新しいポートにバインドし、変更を適用するためにApache HTTPサーバーを再起動するために policycoreutils パッケージをインストールします。

# yum install policycoreutils

ポート 8081 にSelinuxルールを追加します。

# semanage port -a -t http_port_t -p tcp 8081
# semanage port -m -t http_port_t -p tcp 8081

Apache Webサーバーを再起動します

# systemctl restart httpd.service 

netstatまたは ssコマンドを実行して、新しいポートが正常にバインドされて着信トラフィックを待機しているかどうかを確認します。

# netstat -tlpn| grep httpd
# ss -tlpn| grep httpd

ブラウザを開き、ポート 8081 でサーバーのIPアドレスまたはドメイン名に移動して、新しいWebポートがネットワークに到達できることを確認します。Apacheのデフォルトページがブラウザに表示される

http://server.ip:8081 

上記のアドレスに移動できない場合は、サーバーの[ファイアウォール]テーブルに適切なファイアウォール規則を追加してください。