ホームページ  >  記事  >  バックエンド開発  >  Nginx.conf 構成の概要

Nginx.conf 構成の概要

WBOY
WBOYオリジナル
2016-08-08 09:30:47955ブラウズ

ここ数ヶ月のプロジェクトはすべてnginx環境で構築しましたので、緊急時に備えて設定ファイルの関連内容を記録しておきます~~

公式サイトをご確認ください。詳細な設定情報を注意深く確認してください。ドキュメント: http://wiki.nginx.org/Configuration

#これに基づいて、nginx がフォルダーにアクセスできないようにするための権限を設定できます。違法なユーザーが許可なくフォルダーにアクセスできないようにします。ちなみに、phpプロジェクト

#のログファイルの読み書きでは、ユーザーはnginxではありません。nginxは分析のためにphpをphp-cgiに転送するため、通常、ユーザーはphp-cgiの所有者になります。 www-data

user nginx nginx;

#プログラムの同時実行性を向上させるために、nginxを起動するプロセスの数はCPUコアの総数以下である必要があります

worker_processes 4;

#global アクセスとエラーのログとそのレベル、[デバッグ | 警告 | エラー |

] /var/nginx/error.log warn;

#デフォルトのログ形式設定

log_format アクセス $remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent " $http_referer" '

'"$http_user_agent" $http_x_forwarded_for';

#プロセス実行時のファイル


pid /run/nginx.pid;

#動作モードと最大接続数

{

# イベント モデル、[ epoll | select |poll ]; 、FreeBSD で実行している場合は、kqueue モデルを使用します。

epollを使用します;

#単一プロセスの最大接続数(最大接続数 = 接続数 * プロセス数)、私の構成は768*4です

worker_connections 768;

#複数のリクエストを同時に受け入れ、高い同時実行性を有効にする

multi_accept on;

}

#httpサーバーを設定する

http

{

include mime .types; #MIME 形式、ファイル拡張子、およびファイル タイプのマッピング テーブルを使用します

default_type application/octet-stream; #デフォルトのファイル タイプ、ファイル ストリーム

#charset utf-8;

server_names_hash_bucket_size 128; #サーバー名のハッシュテーブルサイズ

#アップロードファイルサイズの上限を8MBに設定します

client_max_body_size 8m;

#効率的なファイル転送モードを有効にし、 sendfile 関数 (ゼロ コピー モード) を呼び出してファイルを出力します。通常のアプリケーションでは on に設定します。ダウンロードなどのディスク IO 負荷の高いアプリケーションに使用する場合は、ディスクとネットワークの I/O 処理速度のバランスを取るために off に設定できます。システム負荷と

稼働時間

を削減します。注: 画像が正しく表示されない場合は、これをオフに変更してください。

sendfile on;

#アクセスブラックとホワイトリスト、ファイル名、サイズを設定します

white_black_list_conf conf/white.listzone=white1:4m;white_black_list_conf/black 。 listzone =black1:4m;white_listwhite1on;#Whitelistwhite1はhttp全体でオンになりますblack_listblack1on;#Blacklistblack1はhttp全体でオンになります

tcp_nopushon; #ネットワークのブロックを防ぐ

tcp_nolay on; #ネットワークのブロックを防ぐ

keepalive_timeout 65; #長い接続タイムアウト (秒単位) #gzip をオンにし、GNU で静的リソースを圧縮し、Web サイトへのアクセスを最適化します速度

gzip on;
#gzip 圧縮出力をオンにする

gzip_min_length 1k; #圧縮の最小ファイルサイズ制限をオンにするgzip_buffers 4 16k;

# をセットアップします複数のキャッシュ単位を取得するシステム gzip 圧縮結果データ ストリームの保存に使用され、一度に 4*16=64k のキャッシュを適用します

gzip_http_version 1.0;

#http1.0 以降を使用してファイルを圧縮します

gzip_comp_level 2; #圧縮レベル、1-10、大きいほど圧縮率が高くなります

#圧縮ファイルの種類、css、js、php、jpg、png

gzip_typestext/plain application /x-javascript テキスト/css アプリケーション/xml テキスト/javascript application/x-httpd-php image/jpeg image/gif image/png

gzip_vary on;

#例外を許可する

gzip_disable"MISE[1-6]"#IE6 以下の圧縮を無効にする

#limit_zone クローラー $binary_remote_addr 10m #IP 接続数の制限をオンにするときに使用する必要があります

upstream www .xxx.com {

#Upstream 負荷分散、重みは重みであり、重みはマシン構成に従って定義できます。重みパラメータは重みを表します。重みが大きいほど、割り当てられる確率が高くなります。

サーバー 192.168.80.121:80 重み = 3;

サーバー 192.168.80.122:80 重み = 2; #FastCGI 関連パラメータは、パフォーマンスを向上させるためのものです。 Web サイト: リソースの使用量を削減し、アクセス速度を向上させます。

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

#各サーバーの構成

server

{


#デフォルトのリスニングhttp 80ポート、ipv4とipv6の両方

listen 8 0;

聞いてください [: :]:80default_server ipv6only=on;

#スペースで区切って複数のドメイン名を使用できます

server_name www.xx.com xx.com;

indexindex.php;

root /data/www/xx;

#携帯電話からは別のページへ移動します

location / {

#アクセス端末の種類を決定 if ($http_user_agent ~* '( Android|ipad |ipod) ') {

rwrite ^.+ http://m.xx.com

} #静的ファイルへの直接アクセス

#HTMLページのメタタグと同様に画像キャッシュ時間設定、有効期限や最大保存期間を設定可能

location ~ .(html|htm|gif |jpg|
jpeg| png | bmp |swf
)$ {




expires 10d;注: php.ini には「cgi .fix_pathinfo = 0;」が必要です #fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index Index.php; S および CSS のキャッシュ時間設定

location ~ .*.(js|css)?$ {

有効期限 1 時間;}


#エラー ページ

error_page 500 502 3 504 /50x.html;

location = /50x.html { root /usr/share/nginx/ html; }

#「/」のリバースプロキシを有効にする



location /プロキシパス http://127.0 .0.1:88;



proxy_redirect off;



proxy_set_header リバースプロキシ設定、オプション。


proxy_set_header Host $host;

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 バッファー、平均 Web ページ設定は 32k 未満です

proxy_busy_buffers_size 64k; #高負荷時のバッファー サイズ (proxy_buffers*2) TProxy_temp_file_write_size 64K;

#キャッシュフォルダーのサイズをこの値より大きく設定し、上流サーバーから渡されます

}

# /NginxStatus {

stub_status on;

access_log on;

auth_basic "NginxStatus";

auth_basic_user_file confpasswd;

#htpasswd ファイルの内容は、Apache プロデュースが提供する htpasswd ツールを使用して取得できます。

}

#j2eeを使用する場合、ページはポート8080に送信できます。

すべての

jspページはTomcatまたはResinによって処理されます

location ~ .( jsp | jspx|do|action)?$ {proxy_set_header ホスト $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header

proxy_pass http : //127 .0.0.1: 8080 ;

}}} #次に、サーバーへのモバイルアクセスを設定し、携帯電話からメインステーションにリクエストを受け取ります

サーバー {サーバー名 m.xx.com www.m.xx .com;

access_log /usr/share/nginx/logs/mobile_access.log; error_log /usr/share/nginx/logs/mobile_error.log; location / { ~ root /usr/share/nginx/ html/ mobile;}}

local ~ .php $ {

root/usr/share/nginx/html/mobile; OULD HAVE " cgi.fix_pathinfo = 0;" in php.ini

#fastcgi_pass unix:/var/run /php5-fpm.sock;

fastcgi_index Index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

' ’ s ’ の ‐ ‐‐‐‐‐‐ fastcgi_index

}



上記は、関連するコンテンツを含む Nginx.conf 構成の概要を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。


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