1. リバース プロキシとは:
リバース プロキシ サーバーがインストールされているサーバー側は、頻繁に要求されるページをバッファリングすることでサーバーの負荷を軽減し、クライアント要求を内部ネットワーク上のターゲット サーバーに転送し、サーバーから取得した結果をインターネット上の接続を要求しているクライアントに返します。プロキシ サーバーとターゲットホストは外部に対してサーバーとして一緒に表示されます。
2. リバース プロキシの主な機能:
現在、Web サイトではリバース プロキシが使用されており、内部ネットワーク サーバーに対する外部ネットワークからの悪質な攻撃を防ぐだけでなく、キャッシュによってサーバーの負荷を軽減することができます。セキュリティ制御に加えて、ユーザーリクエストを複数のサーバーに分散する負荷分散も実行できます。
3. Nginx 構成リバース プロキシ:
Nginx は、近年人気のリバース プロキシ サーバーとして、宛先ホストにインストールされ、主にクライアント リクエストの転送に使用されます。 http サーバーはサービスを提供し、nginx の機能はリクエストを後続のサーバーに転送し、現在のリクエストを処理するターゲット ホストを決定することです。
3.1 構成ターゲット:
2 つの Web サーバー、つまり 10.0.5.87 と 10.0.5.123 がイントラネット上に構築されています。次に、Nginx を使用してリバース プロキシ サーバーを構築する必要があります。
- プロキシ サーバー経由で 2 つの Web サーバーにアクセスできます。
- リクエスト パッケージのヘッダー フィールドは変更できます。
- キャッシュ機能を有効にします。
3.2 実装方法:
nginx 構成ファイルの変更:
#配置cache模块 proxy_cache_path /nginx/cache/first levels=1:2 keys_zone=first:20m max_size=1g; server { #侦听www.local_host.ik的80端口 listen 80; server_name www.local_host.ik; #对aspx后缀的进行负载均衡请求 location / { # root /root;#定义服务器的默认网站根目录位置 index index.php index.html index.htm;#定义首页索引文件的名称 proxy_pass http://10.0.5.87:8080/;#请求转向定义的服务器 #以下是一些反向代理的配置可删除. proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数, proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 #启用cache并指定大小 proxy_cache first; proxy_cache_valid 200 10m; } add_header X-Via $server_addr; add_header X_cache_hit $upstream_cache_status; } #第二个虚拟服务器 server { #侦听www.fengyanjiao.ik的80端口 listen 80; server_name www.fengyanjiao.ik; #对aspx后缀的进行负载均衡请求 location / { # root /root;#定义服务器的默认网站根目录位置 index index.php index.html index.htm;#定义首页索引文件的名称 proxy_pass http://10.0.5.123:5004/;#请求转向定义的服务器 #以下是一些反向代理的配置可删除. proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数, proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 } }
クライアント ホスト ファイル構成:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.183.22 www.fengyanjiao.ik 192.168.183.22 www.local_host.ik
3.3 テスト:
3.3。 1 クライアントでリクエストを開始します (キャッシュなし):
curl www.fengyanjiao.ik
応答パケットが表示されます。実サーバー 10.0.5.123 上のパケットをキャプチャすると、プロキシ http リクエスト メッセージが表示されます。これは動的ページであるため、キャッシュされません。
3.3.2 クライアントでリクエストを開始します (キャッシュを使用):
curl www.local_host.ik
応答パケットが表示されます。実サーバー 10.0.5.87 上のパケットをキャプチャすると、プロキシ http リクエスト メッセージが表示されます。このリクエストの後、プロキシ サーバーの /nginx/cache/first/3/4c ディレクトリにキャッシュ ファイル 4a0993df8ef6191d1b1e12fa56c804c3 が表示されます。
次回クライアントで www.local_host.ik をリクエストするときに、クライアントでパケットをキャプチャすると、それが表示されます。
Nginx 関連の技術記事の詳細については、Nginx チュートリアル 列にアクセスして学習してください。
以上がnginxリバースプロキシ2つの異なるサーバーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。