ここLinuxAPTでは、NGINXWebサーバーをubuntuサーバー20.04LTSのリバースプロキシとして構成する方法を検討します。
リバースプロキシはどのように機能しますか?
リバースプロキシは、1つ以上のWebサーバーの前に配置され、クライアントからの要求をインターセプトするサーバーです。クライアントがWebサイトのオリジンサーバーに接続しようとすると、それらの要求はリバースプロキシサーバーによってインターセプトされます。プロキシサーバーはこれらの要求をプロキシサーバーに転送し、プロキシサーバーから応答を受信してクライアントに送信します。
リバースプロキシの利点は次のとおりです。
- 負荷分散。
- グローバルサーバー負荷分散(GSLB)。
- パフォーマンスを向上させるためのコンテンツのキャッシュとWebアクセラレータ。
- より効率的で安全なSSL暗号化。
- DDoS攻撃および関連するセキュリティ問題からの保護。
前提条件
- Ubuntu Server20.04LTSにインストールされているNginxWebサーバー。
- Ubuntu Server20.04LTSで構成されたWebサイト。
- リモートマシン(NginxおよびWebサイト)へのSSH接続。
この目的のために、ubuntuサーバー20.04LTSにデプロイされたWebサイトを使用しました。これはメインサーバーとして機能するか、プロキシサーバーと言うことができます。 Nginx Webサーバーは、このチュートリアルでリバースプロキシとして構成する別のubuntuサーバー20.04LTSにデプロイされます。ローカルマシンには、Linux Mint 20.02がインストールされており、そこからリモート接続を形成します。
- Nginx Webサーバーの仮想マシンのIPアドレス:10.11.120.2
- 導入されたWebサイトの仮想マシンのIPアドレス:10.11.120.3
Rocky Linux 8 / CentOS8でLet'sEncryptSSLを使用してNginxサーバーブロックとSecureNginxを構成する方法については、https://linuxapt.com/blog/724-configure-nginx-server-block-and-secure-にアクセスしてください。 nginx-with-lets-encrypt-ssl-on-rocky-linux-8-centos-8
Ubuntu20.04でリバースプロキシとしてNginxを設定する手順
1.NginxマシンへのSSH
最初のステップは、Nginxがインストールされているリモートマシンに接続することです。このマシンでは、Nginxをリバースプロキシとして構成します。これを行うには、Nginxをデプロイしているマシンのユーザー名とIPを追加して、以下のコマンドを実行します。私たちの場合、それはnginxと10.11.120.2です:
$ ssh [email protected]
2.事前構成されたNginx仮想ホストを無効にします
次に、以下のコマンドを実行して、Nginx仮想ホストのデフォルト構成のリンクを解除します。
$ unlink /etc/nginx/sites-enabled/default
3.リバースプロキシ構成ファイルを作成します
次に、リバースプロキシ構成ファイルを作成します。
これを行うには、以下のコマンドのパスに従って、sites-availableディレクトリに移動します。
$ cd /etc/nginx/sites-available
次に、リバースプロキシ構成ファイルを作成し、次のようにnanoエディターで開きます。
$ sudo nano example.conf
次の行をコピーして、作成したファイルに貼り付けます。
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://10.11.120.3:80;
}
}
この構成は、Nginxリバースプロキシがポート80でリッスンしており、example.comなどのすべての着信接続要求を10.11.12.3サーバーのポート80にリダイレクトしていることを示しています。
4.シンボリックリンクを作成してファイルをアクティブ化します
ここでは、ファイルを保存し、次のようなシンボリックリンクを作成してアクティブ化します。
$ sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
5.Nginx構成ファイルをテストします
リバースプロキシ構成ファイルのエラーをテストするときが来ました。これを行うには、次のコマンドを実行します。
$ sudo nginx -t
「構文は大丈夫です」というメッセージが表示された場合は、問題がないことを意味します。
6.Nginxを再起動します
最後のステップは、Nginx Webサーバーを再起動して、追加したばかりの新しいリバースプロキシ構成ファイルがNginxWebサーバーで構成されるようにすることです。これを行うには、次のコマンドを実行します。
$ sudo systemctl restart nginx
これで、マシンでWebブラウザーを開き、Webサイトを実行することでテストできます。 Nginxを介して10.11.120.3マシンにプロキシされます。
Webサイトが正常に動作している場合、これはNginxリバースプロキシが正常に構成されていることを意味します。