ホームページ > 運用・保守 > Nginx > nginxリバースプロキシ2つの異なるサーバー

nginxリバースプロキシ2つの異なるサーバー

步履不停
リリース: 2019-07-10 13:21:23
オリジナル
6437 人が閲覧しました

nginxリバースプロキシ2つの異なるサーバー

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート