常见的 Nginx 配置选项整理

  • 时间:
  • 浏览:11
作者:匿名 hihi 来源:Linux Today 浏览: 2012-4-11 16:36:37 字号:大 中 小

[摘要]Google上有富有的 Nginx 的教程和样本配置文件,但全都那我那我,配置那些是全都技巧,经常对亲戚亲戚让让我们都很有帮助,下面分发的那些Nginx 配置选项希望对亲戚亲戚让让我们都有所帮助。

  Google

上有富有的

Nginx

的教程和样本配置文件,但全都那我那我,配置那些是全都技巧,经常对亲戚亲戚让让我们都很有帮助。

Include 文件

  未必在您的主 nginx.conf 文件中配置所有的东西,你时要分成几次较小的文件。您的同事会很感激你的。比如我的行态,我定义我的 upstream 的 pool 的为那我文件,和那我文件定义 location 正确处理服务器上其它的应用。

例子:

upstreams.conf

upstream cluster1 {

fair;

server app01:70150;

server app01:7061;

server app02:70150;

server app02:7061;

}

upstream cluster2 {



fair;

server app01:7071;

server app01:7072;

server app02:7071;

server app02:7072;

}

locations.conf

location / {

root /var/www;

include cache-control.conf;

index index.html index.htm;

}

location /services/service1 {



proxy_pass_header Server;

proxy_set_header Host $http_host;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Scheme $scheme;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

add_header Pragma "no-cache";

proxy_pass http://cluster1/;



}

location /services/service2 {



proxy_pass_header Server;

proxy_set_header Host $http_host;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Scheme $scheme;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

add_header Pragma "no-cache";

proxy_pass http://cluster2/service2;



}

servers.conf

server {

listen 150;

include locations.conf;

}

  现在,你的 nginx.conf 看起来非常的干净和简单(仍然能不还要能分开更多,来更包括文件,比如分离gzip的配置选项)

nginx.conf

worker_processes 4;

worker_rlimit_nofile 10240;

events {



worker_connections 10240;

use epoll;

}

http {



include upstreams.conf;

include mime.types;



default_type application/octet-stream;

log_format custom '$remote_addr - $remote_user [$time_local] '



'"$request" $status $bytes_sent '

'"$http_referer" "$http_user_agent" "$http_x_forwarded_for" $request_time';

access_log /usr/local/nginx/logs/access.log custom;

proxy_buffering off;



sendfile on;

tcp_nopush on;

tcp_nodelay on;

gzip on;



gzip_min_length 10240;

gzip_proxied expired no-cache no-store private auth;

gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/xml+rss image/svg+xml application/x-font-ttf application/vnd.ms-fontobject;

gzip_disable "MSIE [1-6]\.";

# proxy cache config



proxy_cache_path /mnt/nginx_cache levels=1:2

keys_zone=one:10m

inactive=7d max_size=10g;

proxy_temp_path /var/tmp/nginx_temp;

proxy_next_upstream error;

include servers.conf;



}

  这 nginx.conf 文件是使用了全都不太常见的配置选项,它值得指出其中全都重要的。

多个 worker  的配置(多多程序 )

  肯能你的 Nginx 是多个 CPU 和多核,时要配置成多核的数量比较好。

worker_processes 4;

增加打开的文件句柄

  肯能 Nginx 服务很大的流量,增加最大能不还要能打开的文件句柄还是很有用的,肯能默认不还要能 1024 个,能不还要能使用 'ulimit -n' 看多当前系统中的设置。

worker_rlimit_nofile 10240;

定制的日志

  能不还要能看看 log_format 和 access_log 五个选项的设置。通常亲戚亲戚让让我们都有几次参数最常使用,相似"$http_x_forwarded_for" 能不还要能见到 load balancer 的设备那我的 IP,还有 "$request_time" 能不还要能见到 Nginx 来正确处理你你这俩主动所花的时间。

压缩

  压缩对于文本非常非常的有用

gzip on;

gzip_min_length 10240;

gzip_proxied expired no-cache no-store private auth;

gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/xml+rss image/svg+xml application/x-font-ttf application/vnd.ms-fontobject;

gzip_disable "MSIE [1-6]\.";

代理的选项

  那些选项能不还要能在每个 location 中设置

proxy_pass_header Server;

proxy_set_header Host $http_host;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Scheme $scheme;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

add_header Pragma "no-cache";

  你你这俩中加了那我定制的参数,前会 'no-cache',那我想要 不需要使用 cache 的内容了。

代理的 Cache

  使用 Nginx 能不还要能给全都文件来 cache 到本地来当 Cache 的服务器,时要设置  proxy_cache_path 和  proxy_temp_path  在你的 HTTP 的 directive 中。在 location 中配置,肯能遇见你想 cache 的内容得话。

proxy_cache_path /mnt/nginx_cache levels=1:2

keys_zone=one:10m

inactive=7d max_size=10g;

proxy_temp_path /var/tmp/nginx_temp;

  这肯能还想增加全都其它的参数

proxy_cache one;

proxy_cache_key mylocation.$request_uri;

proxy_cache_valid 150 1502 1504 10m;

proxy_cache_valid 1501 1h;

proxy_cache_valid any 1m;

proxy_cache_use_stale error timeout invalid_header http_1150 http_1502 http_1503 http_1504 http_404;

HTTP caching options

  有时你想使用其它的东西来做 Cache,你肯能时要指定为什么会么会样 cache。我想要 给 cache 的信息的文件 include 到你的 root 的 location 中

location / {

root /var/www;

include cache-control.conf;

index index.html index.htm;



}

  我想要 指定不同的头到于不同的文件

# default cache 1 day

expires +1d;

if ($request_uri ~* "^/services/.*$") {



expires +0d;

add_header Pragma "no-cache";

}

if ($request_uri ~* "^/(index.html)?$") {



expires +1h;

}

SSL

  肯能我时要 配置 ssl 的连接得话

server {

server_name www.example.com;

listen 443;

ssl on;

ssl_certificate /usr/local/nginx/ssl/cert.pem;

ssl_certificate_key /usr/local/nginx/ssl/cert.key;

include locations.conf;



}

Nginx下载

本文转自:http://www.linuxde.net/2012/04/9656.html

sssss
Tags: Nginx   Nginx配置选项   Nginx教程   Nginx下载  
责任编辑:cc120