ウェブサイト検索

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


Apache HTTP サーバーは、今日のインターネットで最もよく使用されている Web サーバーの 1 つであり、その柔軟性、安定性、さまざまな機能に優れています。そのうちのいくつかは、現時点では他の Web サーバーには存在しません。ライバルはNginxです。

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

デフォルトでは、Apache Web サーバーは受信接続をリッスンし、 ポート80 にバインドするように指示されます。 TLS 構成を選択した場合、サーバーはポート 443 で安全な接続を待機します。

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

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

コンソールのテキスト エディタで独自のディストリビューションに固有のファイルを開き、以下の抜粋に示すように新しいポート ステートメントを追加します。

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

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

Listen 8081

上記の行を追加した後、独自の仮想ホスト要件に合わせてバインド プロセスを開始するために、Debian/Ubuntu ベースのディストリビューションで Apache 仮想ホストを作成または変更する必要があります。

CentOS/RHEL ディストリビューションでは、変更はデフォルトの仮想ホストに直接適用されます。以下のサンプルでは、Web サーバーのデフォルトの仮想ホストを変更し、80 ポートから 8081 ポートまでの Web トラフィックをリッスンするように 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 ディストリビューションに policycoreutils パッケージをインストールして、Apache が新しいポートにバインドするために必要な SELinux ルールを追加し、Apache HTTP サーバーを再起動して変更を適用します。

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 

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