1. 運用環境のトラフィックを起動前環境またはテスト環境にコピーする必要があるのはなぜですか?
これを行うメリットは次のとおりです。
機能が正常かどうか、サービスのパフォーマンスを確認できます;
データを作成せずに実際の効果的なトラフィック リクエストを使用して検証し、通常のオンライン アクセスには影響しません。
これはグレースケール パブリッシングと同じではなく、ミラーリングされたトラフィックは影響を受けません。実際のトラフィックに影響を与える;
オンラインの問題のトラブルシューティングに使用できます;
サービスがリファクタリングされている場合、再構築はテストでもありますトラフィック コピーを実現するために、Nginx は ngx_http_mirror_module モジュール
ホームページをインストールし、yum ウェアハウスを設定します。 。これを行うには、ファイル /etc/yum.repos.d/nginx.repo
次の内容をファイルに書き込みます
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
yum install nginx
yum install nginx
Byデフォルトでは、nginx 構成ファイルは nginx.conf です。
通常、nginx.conf ファイルは /usr/local/nginx/conf または /etc/nginx または /usr/local/etc/nginx ディレクトリにあります
nginx を起動するには、コマンド ラインに nginx と直接入力して Enter キーを押します
# 启动nginx nginx # fast shutdown nginx -s stop # graceful shutdown nginx -s quit # reloading the configuration file nginx -s reload # reopening the log files nginx -s reopen # list of all running nginx processes ps -ax | grep nginx
(無料の学習ビデオ共有:
php ビデオ チュートリアル)
nginx マスター プロセスのプロセス ID は、デフォルトで nginx.pid ファイルに配置されます。通常、ディレクトリは /usr/local/nginx/logs または /var/run です次のように nginx を停止することもできます
kill -s QUIT 3997
初期設定ファイルは次のようになります:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
3 、 ngx_http_mirror_module
ngx_http_mirror_module モジュール (1.13.4) は、バックグラウンド ミラー サブリクエストを作成することで、元のリクエストのミラーリングを実装します。ミラー サブリクエストへの応答は無視されます。
これは、方法です。なるほど、ここでミラーの本来の意味はミラーであり、全てのリクエストを集めたミラーサイトのようなものであると理解できますが、このミラーは全ての実際の有効なオリジナルリクエストを表しています。このイメージを使用すると、すべてのリクエストを再現するなど、将来的にいくつかのことを行うことができます。これにより、オンライン プロセスを他の場所にコピーできるようになります。
公式 Web サイトで示されている例は、次のように非常に単純です。
location / { mirror /mirror; proxy_pass http://backend; } location = /mirror { internal; proxy_pass http://test_backend$request_uri; }
リクエスト本文がミラーリングされている場合、サブリクエストを作成する前にリクエスト本文が読み取られます。
location / { mirror /mirror; mirror_request_body off; proxy_pass http://backend; } location = /mirror { internal; proxy_pass http://log_backend; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; }
表面 Nginx をインストールしましたが、必要な ngx_http_mirror_module モジュールが含まれていないため、どうしても使いたい場合はカスタム インストール、つまりソース コードからビルドするのが最善です
#まず、ソース コードをダウンロードします http://nginx .org/en/download.html次に、次のようにコンパイルしてインストールします。./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --without-http_limit_req_module --without-http_mirror_module --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11 --add-module=/path/to/ngx_devel_kit --add-module=/path/to/lua-nginx-module
make & make install
upstream api.abc.com { server 127.0.0.1:8080; } upstream tapi.abc.com { server 127.0.0.1:8081; } server { listen 80; # 源站点 location /api { proxy_pass http://api.cjs.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 流量复制 mirror /newapi; mirror /mirror2; mirror /mirror3; # 复制请求体 mirror_request_body on; } # 镜像站点 location /tapi { proxy_pass http://tapi.cjs.com$request_uri; proxy_pass_request_body on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
nginx チュートリアル
以上がnginxトラフィックコピー機能の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。