NginxとApacheがポート80を共有する設定方法を詳しく解説
この記事では、主に Nginx と Apache がポート 80 を共有する設定方法を紹介します。もちろん、Nginx が Apache とポート 80 を競合しないようにしたい場合は、この記事の最後に Nginx のポート変更方法も添付します。参照できます
典型的な例 Nginx + Apache アプリケーション ソリューションでは、Nginx がポート 80 を占有し、静的リクエストをフィルターし、Apache ポート 8080 にプロキシを動的にリクエストします。プロキシ リバース プロキシの利点は、アクセスするときは常にポート 80 であり、訪問者は違いに気付かないことです。
しかし、一部のアプリケーションは確かに非常に「賢い」もので、Apache が配置されているポートが 8080 であることを認識し、関連するすべてのハイパーリンクに 8080 を追加します。すでに停止している場合でも、通常どおりアクセスできますか? !
この問題を解決する方法は、Apache をポート 80 で実行することです。同じサーバーに Nginx と Apache、2 つの httpd サービスがあり、どちらも 80 ですが、競合は発生しませんか?
以下は一例です。
Nginx.conf の
server { listen 80; server_name www.webyang.net; }
の設定を変更します。
server { listen 192.168.3.3:80; #指定Nginx只占用某个IP的80端口。 listen 192.168.10.3:80; #如果你服务器中有多个IP,还可以指定多个。 server_name www.webyang.net; }
Nginx に複数の仮想ホストがある場合、それぞれを次のように変更する必要があります。
次はApacheのhttpd.confの出番です
元の
Listen 80
を
Listen 127.0.0.1:80
に変更します。Nginxと同様に、Apacheが占有するIPとポートを指定します。
保存して終了し、Apache を再起動して有効にします。
Apache 上に複数の仮想ホストがある場合。すべてがポート 80 上にある限り、Nginx のように 1 つずつ変更する必要はありません。
例:
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin hello@abc.com DocumentRoot /data/web_server/admin ServerName www.webyang.net </VirtualHost>
すべてうまくいくと思いますか?いいえ。
そのような Apache には http://127.0.0.1:80 経由でのみアクセスできるため、ポート 80 を占有することは意味がありません。 Apache には 8080、nginx には 80 を使用することをお勧めします。
そのため、現時点でサーバーに複数の IP がある場合、Apache を 127.0.0.1 にバインドするだけでなく、別のネットワーク カードの IP をバインドすることもでき、問題は解決されます。
しかし、ほとんどの人は独立した IP を 1 つしか持っていないため、この方法は多くの人にとって蜃気楼です。
アイデアを変更して、Apache はポート 8080 のままで、1 つの nginx ドメイン名の conf ファイルを変更します
location / { try_files $uri @apache; } location @apache { internal; proxy_pass http://127.0.0.1:8080; } location ~ .*.(php|php5)?$ { proxy_pass http://127.0.0.1:8080; }
現時点では、静的ファイルを含むドメイン名のすべてのアクションは Apache に送られます。
こんな風に書く人も多いです
upstream zend { server 127.0.0.1:8080; } location / { proxy_pass http://zend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; } location ~ .*.(php|php5)?$ { proxy_pass http://zend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; }
大体似たような感じです。
Nginxポートの変更
nginx.confファイルの実装を変更します。このファイルのパスは、Linux では /usr/local/nginx/conf/nginx.conf、Windows ではインストール ディレクトリ confnginx.conf です。
server { listen 80; server_name localhost; …… }
を
server { listen 81; server_name localhost; location / { root html; index index.html index.htm; } …… }
に変更します。 もちろん、8080、8081 などに変更します。81 である必要はありませんが、iptable がポートへのアクセスを許可していることを確認してください。
場所の構成に注意してください:
root html; #根目录,相对于安装目录 index index.html index.htm; #默认主页
デフォルトでは、ファイルはインストールディレクトリの html フォルダーに置かれ、Nginx を通じてアクセスできます。
関連する推奨事項:
以上がNginxとApacheがポート80を共有する設定方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









H5プロジェクトを実行するには、次の手順が必要です。Webサーバー、node.js、開発ツールなどの必要なツールのインストール。開発環境の構築、プロジェクトフォルダーの作成、プロジェクトの初期化、コードの書き込み。開発サーバーを起動し、コマンドラインを使用してコマンドを実行します。ブラウザでプロジェクトをプレビューし、開発サーバーURLを入力します。プロジェクトの公開、コードの最適化、プロジェクトの展開、Webサーバーの構成のセットアップ。

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

Enterprise WechatのJSリソースキャッシュ問題に関する議論。プロジェクト機能をアップグレードするとき、一部のユーザーは、特にエンタープライズでうまくアップグレードできない状況に遭遇することがよくあります...

サーバー側に文字エンコードを設定して、文字化けしたブートストラップテーブルを解決するには、次の手順に従う必要があります。サーバー文字のエンコーディングを確認します。サーバー構成ファイルを編集します。 EncodingをUTF-8に設定します。サーバーを保存して再起動します。エンコーディングを確認します。

Bootstrapページのプレビュー方法は次のとおりです。BrowserでHTMLファイルを直接開きます。ライブサーバープラグインを使用してブラウザを自動的に更新します。ローカルサーバーを構築して、オンライン環境をシミュレートします。

ポート競合、構成ファイルエラー、システム許可の不十分、サービス依存関係の問題、インストールの問題など、XAMPPがMySQLを起動できない理由はたくさんあります。トラブルシューティング手順は次のとおりです。1)ポートの競合を確認します。 2)構成ファイルを確認します。 3)システムの許可を確認します。 4)サービスの依存関係を確認します。 5)mysqlを再インストールします。これらの手順に従うと、MySQLの起動が失敗する問題を見つけて解決できます。

Hash値でindex.htmlファイルを指すようにnginxを構成する方法は? Reactプロジェクトを使用してパッケージ化するときの生成されたindex.html ...

next.js nginxの静的エクスポートルーティングの問題はnext.jsを使用しています...
