nginx配置详解

如果你的网站的服务器是nginx,你可能需要经常对nginx的配置做变动和修改,了解nginx的配置非常重要。

user  www;  		 # Nginx用户及组:用户 组。window下不指定
worker_processes 1;    
# 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。

error_log  logs/error.log;      
error_log  logs/error.log  notice;  
error_log  logs/error.log  info;  
# 错误日志存放目录

pid        /usr/local/nginx/logs/nginx.pid;
# pid(进程标识符):存放路径。

worker_rlimit_nofile 51200;
# 指定进程可以打开的最大描述符:数目。
#
# 这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件# 数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最
# 好与ulimit # -n 的值保持一致。
#
# 现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写#65535。
#
# 这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发  # 量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

events
	{
		use epoll;
# 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不# 指定。
# 补充说明:
# 与apache相类,nginx针对不同的操作系统,有不同的事件模型
# A)标准事件模型
#	Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择    # select或poll
# B)高效事件模型
# Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处# 理器的MacOS X系统使用kqueue可能会造成内核崩溃。
# 
# Epoll:使用于Linux内核2.6版本及以后的系统。
# /dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和    # Tru64 UNIX 5.1A+。
#
# Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。

		worker_connections 51200;
# 没个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,    # 但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服
# 务器# 的最大连接数为。worker_processes*worker_connections

keepalive_timeout 60;
# keepalive超时时间。

client_header_buffer_size 4k;
# 客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头# 的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
# 分页大小可以用命令getconf PAGESIZE 取得。
# [root@web001 ~]# getconf PAGESIZE
#
# 4096
#
# 但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须  # 设置为“系统分页大小”的整倍数。

open_file_cache max=65535 inactive=60s;
# 这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数# 一致,inactive是指经过多长时间文件没被请求后删除缓存。
 
open_file_cache_valid 80s;
# 这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1;
# open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,    # 文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内
# 一次没被# 使用,它将被移除。
	}

##设定http服务器,利用它的反向代理功能提供负载均衡支持
http
	{        
		include       mime.types;
# 设定mime类型,类型由mime.type文件定义
		default_type  application/octet-stream;

		server_names_hash_bucket_size 128;
		client_header_buffer_size 32k;
		large_client_header_buffers 4 32k;
		client_max_body_size 50m;

		sendfile on;
		tcp_nopush     on;

		keepalive_timeout 60;

		tcp_nodelay on;

		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 256k;

		gzip on;
		gzip_min_length  1k;
		gzip_buffers     4 16k;
		gzip_http_version 1.0;
		gzip_comp_level 2;
		gzip_types       text/plain application/x-javascript text/css application/xml;
		gzip_vary on;

		#limit_zone  crawler  $binary_remote_addr  10m;

		#log format
                # 日志格式
		log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';

# 虚拟主机配置
server {
    listen   80;   # 服务器端口
    server_name  www.example;  # 服务器域名
    root     /var/www/app;   # 应用站点根目录

    index    index.html index.htm index.php; # 入口文件
    location / {
            root   /var/www/app;
            # 配置路由重写规则,这样可以让网站访问地址中的入口文件	
            # index.php去掉更好看
            if  (!-e $request_filename ) {
                rewrite ^(\/index\.php)?(.*)$ /index.php?s=$2 last;
                break;
            }
    }

    location ~ .*\.(php|php5)?$
            {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
                fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
            }
                location /status {
                        stub_status on;
                        access_log   off;
                }
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }
                location ^~ /App{
                        #deny all;
                }

                # 连接日志
                access_log  /home/wwwlogs/access.log  access;

}



# 引入其他配置文件,一般我们把多个端口的虚拟主机跟主配置文件分开,然后主配	# 置文件来引入
include vhost/*.conf;
include blocksip.conf;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值