网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > 网络知识 > 正文

常见的 Nginx 配置选项整理

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/06/30

【编者按】网学网网络知识频道为大家收集整理了“常见的 Nginx 配置选项整理 “提供大家参考,希望对大家有所帮助!

  Google上有丰富的 Nginx 的教程和样本配置文件,但很多时候时候,配置这些是一些技巧,一直对大家很有帮助。

Include 文件

  不要在您的主 nginx.conf 文件中配置所有的东西,你需要分成几个较小的文件。您的同事会很感激你的。比如我的结构,我定义我的 upstream 的 pool 的为一个文件,和一个文件定义 location 处理服务器上其它的应用。

例子:

upstreams.conf

upstream cluster1 {
fair;
server app01:7060;
server app01:7061;
server app02:7060;
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 80;
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 200 302 304 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504 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/.*contentquot;) {
expires +0d;
add_header Pragma "no-cache";
}

if ($request_uri ~* "^/(index.html)?contentquot;) {
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下载

nginx for Linux v1.2.7 稳定版下载

界面预览

  • 软件大小:713KB
  • 软件类别:国外软件 | web服务器
  • 软件语言:英文
  • 运行环境:Linux
  • 软件授权:开源软件
  • 更新时间:2013-2-17 9:09:03
  • 相关链接:Home Page

nginx for Windows v1.6.0 稳定版下载

界面预览

  • 软件大小:785KB
  • 软件类别:国外软件 | web服务器
  • 软件语言:英文
  • 运行环境:2000/2003
  • 软件授权:开源软件
  • 更新时间:2014-4-25 9:42:56
  • 相关链接:Home Page

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

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号