ホームページ >バックエンド開発 >PHPチュートリアル >Nginxシナリオアプリケーション技術共有

Nginxシナリオアプリケーション技術共有

小云云
小云云オリジナル
2018-01-29 11:17:061453ブラウズ

この記事では主に Nginx シーン アプリケーション テクノロジを共有し、皆様のお役に立てれば幸いです。

静的リソース Web サービスとしての Nginx

設定コンテキスト: http、サーバー、または場所。

には、リソース圧縮、クロスドメイン アクセス、アンチリーチングなどのシナリオが含まれる場合があります。

リソース圧縮設定のコンテキスト: http、サーバーまたは場所
クロスドメイン設定のコンテキスト: http、サーバーまたは場所
アンチホットリンク設定のコンテキスト: サーバー、場所

設定リファレンス

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
rree

Nginx はプロキシ サービスとして機能します

フォワード プロキシ

フォワード プロキシはクライアント プロキシです。クライアントは、ターゲット アドレスのアクセス要件を満たすためにプロキシ サーバーをセットアップします。

Nginx はこのプロキシ サーバーとして機能できます

構成リファレンス

<span style="font-size: 14px;">server {<br>    ...<br>    <br>    # 开启sendfile,提高网络包的传输效率<br>    sendfile on;<br>    <br>    # 配置图片资源的存放路径及压缩方式<br>    location ~ .*\.(jpg|gif|png)$ {<br>        gzip on;<br>        gzip_http_version 1.1;<br>        gzip_comp_level 2;<br>        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;<br>        # 图片防盗链配置 <br>        # 不指定referer 协议不正确 放行指定IP 放行SEO优化<br>        valid_referers none blocked 39.104.116.91 ~/google\./;<br>        if ($invalid_referer) {<br>            return 403;<br>        }<br>        root /opt/app/code/images;<br>    }<br><br>    # 配置txt|xml资源的存放路径及压缩方式<br>    location ~ .*\.(txt|xml)$ {<br>        gzip on;<br>        gzip_http_version 1.1;<br>        gzip_comp_level 1;<br>        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;<br>        root /opt/app/code/doc;<br>    }<br>    # 缓存与跨域场景配置<br>    location ~ .*\.(html|htm)$ {<br>        #给返回报文添加Cache-Control、Expires头,控制缓存<br>        #expires 24h;<br>        #允许跨域到指定域<br>        add_header Access-Control-Allow-Origin http://somehost.com;<br>        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;<br>        root /opt/app/code;<br>    }<br><br>}<br></span>
<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>

リバース プロキシ

リバース プロキシはサーバー側プロキシです。実サーバーのアドレスをクライアントから隠します。

構成リファレンス

<span style="font-size: 14px;">server {<br>    ...<br>    # 可能会涉及到DNS域名解析<br>    resolver 8.8.8.8;<br>    location / {<br>        # 原封不动的让自己转发客户端的请求<br>        proxy_pass http://$http_host$request_uri;<br>    }<br>}<br></span>
<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
e
<span style="font-size: 14px;">server {<br>location / {<br>        #Real Server地址<br>        proxy_pass http://127.0.0.1:8080;<br>        include proxy_params;<br>    }<br>}<br></span>

負荷分散サービスとしてのNginx

リファレンス構成

<span style="font-size: 14px;"># 其他代理配置独立出去,方便复用<br>vi /etc/nginx/proxy_param<br></span>
<span style="font-size: 14px;"># default就可以了。除非返回301的场景,可能需要改写<br>proxy_redirect defalut;<br><br>#配置header信息,让Real Server了解实际客户端信息<br>proxy_set_header Host $http_host;<br>proxy_set_header X-Real-IP $remote_addr;<br><br>#一些代理超时设置<br>proxy_connect_timeout 30;<br>proxy_send_timeout 60;<br>proxy_read_timeout 60;<br><br>#代理缓冲区设置<br>proxy_buffer_size 32k;<br>proxy_buffering on;<br>proxy_buffers 4 128k;<br>proxy_busy_buffers_size 256k;<br>proxy_max_temp_file_size 256k;<br></span>

サーバーの追加パラメータ

上流グループのサーバーの背後には、次のパラメータがサポートされています:

パラメータ 説明
down ロードバランシングに参加しません
バックアップ 予約されたバックアップサーバ。他のノードがサービスを提供していない場合にのみサービスを提供します
max_fails 許可されるリクエストの失敗数
fail_timeout max_fails が失敗した後にサービスが一時停止される時間
max_conns 受信する接続の最大数を制限する

負荷分散スケジューリングアルゴリズム

方法 説明書
ホイールクエリ は、順番に異なるバックエンドサーバーに1つずつ割り当てられます
重み付きポーリング 重みの値が大きいほど、割り当てられる確率が高くなります
ip_hash 同じ IP は同じバックエンド サーバーに固定アクセスします
least_conn 接続数が最も少ないマシン
url_hash ハッシュ結果にURLパラメータの
ハッシュキー値 ハッシュカスタムキー
<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
<span style="font-size: 14px;">upstream backend {<br>    server 192.168.1.101:8001;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br>}<br>server {<br>    ...<br>    location / {<br>        # 代理到upstream组<br>        proxy_pass http://backend;<br>        include proxy_params;<br>    }<br>}<br></span>
rree
<span style="font-size: 14px;"># 加权轮询<br>upstream backend {<br>    server 192.168.1.101:8001 weight=5;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br>}<br></span>

関連推奨事項:

nginx速度制限接続数制限の詳細な説明

nginx 設定 Re Act 静的ページチュートリアル

phpでNginxを使用してリバースプロキシを実装する方法

以上がNginxシナリオアプリケーション技術共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。