その他 | リバース プロキシに Nginx を使用する


01 フォワードプロキシとリバースプロキシ

フォワード プロキシとリバース プロキシはどちらもコンピュータ ネットワーク内のプロキシ サーバーであり、クライアントとサーバー間のデータ送信に使用されます。

  • フォワード プロキシ
    フォワード プロキシ サーバーは、クライアントをプロキシして、ターゲット サーバーにリクエストを送信します。
    クライアントがリクエストを送信すると、リクエストはまずフォワード プロキシ サーバーに送信され、その後、リクエストがターゲット サーバーに転送されます。フォワード プロキシ サーバーを使用すると、クライアントの本当の ID を隠したり、ネットワーク制限を回避したり、キャッシュやその他の機能を提供したりできます。フォワード プロキシの場合、ターゲット サーバーはリクエストの実際の送信元がクライアントであることを認識せず、リクエストがプロキシ サーバーから送信されたことだけを認識します。
  • リバース プロキシ
    リバース プロキシ サーバーは、クライアントの要求を受信するプロキシ サーバーです。
    クライアントがリクエストを送信すると、リクエストはまずリバース プロキシ サーバーに送信され、次にリバース プロキシ サーバーがバックエンドのターゲット サーバーに転送します。リバース プロキシ サーバーは、負荷分散、セキュリティ強化、静的コンテンツのキャッシュ、SSL 暗号化などの機能に使用できます。リバース プロキシの場合、クライアントはリクエストがどのサーバーで処理されるかを認識せず、リクエストがプロキシ サーバーに送信されることだけを認識します。

要約すると、フォワード プロキシはクライアントの ID を隠し、クライアントに代わってリクエストを送信します。一方、リバース プロキシは、サーバーの ID を隠し、サーバーに代わってリクエストを受信します。

02 Nginxによるリバースプロキシの実装

この記事では、Linux 上の Nginx を例として、Nginx のリバース プロキシ設定を構成する方法を説明します。

2.1 Nginxのインストール

nginx をインストールするには 2 つの方法があります。1 つはサーバーに直接インストールする方法、もう 1 つは docker を使用してインストールする方法です。
直接インストール: Linux 補足 | CentOS7 Linux に nginx をインストールし、起動時に自動起動するように設定する (手順)
この記事では、インストールに簡単で便利な docker を使用します。最初に docker と docker-compose をインストールする必要があります。

2.2 nginx設定ファイルの書き込み

# 进入一个自定义的文件夹 此处以root目录为例
cd ~

# 新建一个nginx.conf配置文件
vim nginx.conf

まず、nginx.conf のデフォルト設定をすべて貼り付けてから、http > サーバーの下にコンテンツを追加します。

...
http {
	...
    server {
        listen 80;										# 监听80端口
        server_name www.xxx.com;						# 监听的域名 通常是与本机绑定的域名 也可以写ip地址
        location / {
            proxy_pass http://www.baidu.com;			# 代理的网站 以百度为例
            proxy_set_header Host $host;				# 设置请求头(可选)
			proxy_set_header X-Real-IP $remote_addr;	# 设置真实请求的ip(可选)
        }
    }
}

これを設定すると、このサーバー (www.xxx.com) へのアクセスは、ターゲット Web サイト (www.baidu.com) にリバースプロキシされます。
このサーバーには IP が 1 つしかありませんが、複数のドメイン名 (サブドメイン名など) にバインドできます。構成中に必要なのは、さらにいくつかのサーバーを構成するだけです。ポートは同じでも、ドメイン名は異なっていてもかまいません。プロキシ Web サイトは異なる場合があります。

2.3 docker-compose の書き込み (オプション)

docker モードで起動する場合は、docker-compose を通じて nginx を起動することを選択できます。

# 文件名为docker-compose.yml
version: '3.3'
services:
    nginx:
        volumes:
            - '/root/nginx.conf:/etc/nginx/nginx.conf'
            - '/root/ssl:/etc/ssl/certificates'		# (可选)开启https的情况下才配置
            - '/root/html:/usr/share/nginx/html'	# (可选)有页面的情况下才配置
        network_mode: host							# 使用宿主机的网络 也可自定义网络映射
        image: 'nginx:stable-alpine-slim'			# 拉取的镜像 这里选择最轻量的版本

2.4 起動とアクセス

docker-compose.ymlそれが配置されているパスで、startup コマンドを使用して起動します。

# 启动nginx
docker-compose up -d

# 关停容器
docker-compose down

# 查看容器日志
docker logs <容器id或容器名>

ローカルで http://www.xxx.com にアクセスしてください。
この記事の設定はポート フォワーディングにも使用でき、原理は同じですが、プロキシ サーバーによって設定されるだけですhttp://127.0.0.1:端口号

おすすめ

転載: blog.csdn.net/xuzhongyi103/article/details/131297942