リバースプロキシとは何ですか?
標準のプロキシサーバーは、多くの場合プライバシーを提供したりコンテンツをフィルタリングしたりすることで、クライアントに代わって機能します。リバースプロキシはサーバーに代わって機能し、トラフィックを傍受して別のサーバーにルーティングします。
リバースプロキシをインストールする理由はいくつかあります。主な理由の1つはプライバシーです。
複数のサーバーがある場合、リバースプロキシは、サーバー間の負荷を分散し、パフォーマンスを向上させるのに役立ちます。リバースプロキシはクライアントに単一の連絡先を提供するため、複数のサーバー間でログとレポートを一元化できます。
Nginxは、静的コンテンツをすばやく提供し、動的コンテンツ要求をApacheサーバーに渡すことで、パフォーマンスを向上させることができます。
このガイドは、システムにNginxリバースプロキシをインストールして構成するのに役立ちます。
 
 前提条件
- Apache、PHP、およびファイアウォールを備えたLinuxサーバー
- sudoを使用したrootユーザーへのアクセス アクセス
- Linuxコマンドラインまたはターミナル( Ctrl – Alt – T Ubuntuの場合、 Alt – f2 CentOSの場合)
- パッケージマネージャー(APTなど)
Nginxリバースプロキシの設定
ステップ1:デフォルトのリポジトリからNginxをインストールする
ターミナルウィンドウを開き、次のように入力します。
sudo apt-get updateパッケージマネージャーがソフトウェアリストの更新を終了できるようにしてから、次のように入力します。
sudo apt-get install nginxプロセスが完了するのを待ちます。
ステップ2(オプション):公式リポジトリからNginxをインストールする
セキュリティキーを追加
ターミナルウィンドウで、次のように入力します。
sudo wget https://nginx.org/keys/nginx_signing.keysudo apt-key add nginx_signing.keyこれにより、Nginxの署名キーがダウンロードされ、本物のソフトウェアをダウンロードしていることが確認されます。
sources.listを開きます 編集用ファイル
ターミナルで、次のように入力します。
sudo vi /etc/apt/sources.list 
 リポジトリリストにNginxソースを追加
 /etc/apt/sources.listに次の行を入力します  開いたばかりのファイル:
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
 <CODENAME>を置き換えます Debianのディストリビューションのコードネームを使用します。
保存 ファイルと終了 。
 
 Nginxの最新リリースをインストールする
Nginxの最新リリースをインストールするには、次のコマンドを使用します:
sudo apt-get remove nginx-commonsudo apt-get updatesudo apt-get install nginxステップ3:Nginxを起動し、再起動時に起動するように構成する
Nginxを起動するには:
sudo systemctl start nginxNginxを有効にするには:
sudo systemctl enable nginxNginxが実行されていることを確認するには:
sudo systemctl status nginx出力には、サービスがアクティブ(実行中)であることが示されます。 、下の画像のように:
 
 ステップ4:デフォルトの構成ファイルのリンクを解除する
ターミナルで、次のように入力します。
sudo unlink /etc/nginx/sites-enabled/defaultステップ5:新しい構成ファイルを作成する
新しい構成ファイルを作成するには、次のように入力します。
cd /etc/nginx/sites-available/sudo vi custom_server.conf
  custom_serverを置き換えます  あなたにとって意味のある名前で。新しいファイルに次のように入力します:
server {
listen 80;
location / {
proxy_pass http://my_server;
}
}
これは非常に基本的なNginxリバースプロキシの例です。 Nginxは、すべてのトラフィックについてポート80のすべてのトラフィックをリッスンするように設定されています。
  proxy_pass  コマンドは、ポート80のすべてのトラフィックを http://my_serverに転送します  。  http://my_serverを変更するだけです  選択した場所に移動すると、Nginxはクライアントのリクエストをインターセプトし、指定した場所にルーティングします。終了したら、ファイルを保存して終了します。
ステップ6:構成ファイルをリンクしてアクティブ化する
新しいNginxファイルをアクティブ化するには、次のように入力します。
ln -s /etc/nginx/sites-available/custom_server.conf 
/etc/nginx/sites-enabled/custom_server.conf
 いつものように、 custom_serverを置き換えます  手順5で作成した構成ファイルの名前を使用します。
ステップ7:Nginxをテストして再起動する
Nginxをテストするには:
sudo service nginx configtestNginxを再起動するには:
sudo service nginx restartオプションのNginx構成オプション
プロキシバッファ
デフォルトでは、Nginxはプロキシするサーバーのトラフィックをバッファリングします。バッファは、クライアントが完全な応答の送信を完了するまでサーバー応答が送信されないため、サーバーのパフォーマンスを向上させます。
バッファをオフにするには、手順5の構成ファイルを開きます。場所/セクションの下 、以下を追加します:
proxy_buffering off;リクエストヘッダー
ヘッダーは、行われたリクエストまたはクライアントに関するサーバー情報を提供します。
 Nginxは、次の2つのヘッダーフィールドを再定義します: host   $proxy_host用に構成されています  、およびconnection   close用に構成されています  。これらのヘッダーを使用する場合は、構成ファイルの動作を必ず変更してください。
ヘッダー文字列が空の場合、Nginxはそれらのフィールドを削除するだけです。
Nginxがヘザーを処理する方法を変更するには、構成ファイルで次のコマンドを使用します。
location / {
proxy_set_header Host $host;
}
 この例では、Nginxにhostを設定するように指示しています   $hostへ  変数。
ヘッダーフィールドがプロキシサーバーに渡されないようにするには、次のように空の文字列を使用します。
location / {
proxy_set_header header-variable "";
}負荷分散
構成ファイルを使用して、トラフィックを複数のサーバーにルーティングできます。この構成を使用するには、構成ファイルは次の例のようになります。
http   {
server   {
proxy_pass http://my_server
}
}つまり、HTTP構成はステップ5のサーバー構成の外に出ます。
 サーバーのグループの名前を作成するには、upstreamを使用します  コマンド:
http   {
upstream server_group   {
server my.server1.com weight=3;
server my.server2.com;
}
server  {
location / {
proxy_pass http://server_group;
}
}
}
 この指定には2つのサーバーが必要です–  my.server1.com  およびmy.server2.com  –そしてそれらを一緒にバンドルします。 Nginxは、 http://server_groupという名前でサーバーのグループをプロキシします  。名前は任意に変更できます。
 この例では、 weightを使用しています  3つのリクエストをmy.server1.comにルーティングするコマンド  、次に my.server2.comへの1つのリクエスト  。これは、サーバー間でクライアントの負荷を手動で分散するための1つのオプションです。もう1つの方法は、指定を単純に省略することです。この場合、Nginxは、リストされたサーバー間でリクエストを均等にラウンドロビンします。