代码:https://github.com/lijinhuan



有很多模块,重点是下面三个模块,主要是其配置

一、内核模块(coreModule)

1、主要是nginx.conf的顶层,根部,也就是配置开始部分

2、命令说明




3、配置实例

user  nobody;

worker_processes  12;

error_log  logs/error.log;

pid        logs/nginx.pid;  




二、事件模块(eventsModule)

1、配置实例

events
        {
                use epoll;
                worker_connections 51200;
        }

2、事件指令只能在events区域配置

(1)accept_mutex_delay:如果一个工作进程没有互斥锁,那么将会在这个值后回收

(2)debug_connection:记录网段,产生debug信息

(3)worker_connections:设置每个work进程所能处理的连接数


反向代理最大客户端连接数 = worker_connections/4 * master_process

(4)use : 使用的时间驱动类型




(5)multi_accept:默认为off;是否立即接收所有监听队列进入的链接,高并发设置为on

(6)accept_mutex 

(7)accept_mutex_delay



三、http内核模块(HttpCoreModule)

1、配置实例

http {
server_tokens off;
include       mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr $http_host $upstream_addr [$time_local] $request '



access_log  logs/access.log  main;

sendfile        on;
tcp_nopush     on;
tcp_nodelay    on;

keepalive_timeout  0;
#    limit_zone   one  $binary_remote_addr  10m;
#    limit_req_zone $binary_remote_addr zone=two:10m  rate=1r/s;

gzip  on;
gzip_types text/css text/xml application/xml text/javascript application/x-javascript 'text/html; charset=UTF-8';
gzip_min_length     1k;
gzip_disable        msie6;
gzip_comp_level     9;
gzip_vary           on;

upstream fastcgi_cluster {
server unix:/dev/shm/php.socket;
}

log_format  www.test.com  '$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.test.com test.com;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/www.test.com;    
rewrite ^([^\.]*)/continent-(\d)+\.html$ $1/index.php?action=Index&do=Continent&id=$2 last;
                location ~ .*\.(php|php5)?$
                        {
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fcgi.conf;
                        }
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }
                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }
                access_log  /home/wwwlogs/www.test.com.log  www.test.com;


server
        {
location /{
.....
}

}
}


2、指令,若不说名则表示在http,server,location段都可以使用

(1)client_body_timeout : 设置读取超时,http,server段

(2)client_max_body_size:接收客户端请求体的最大值,默认1M,如果要上传可能要修改

(3)default_type : 默认的MIME类型,默认text/plain

(4)error_page : 配置错误页,也可以指定传递location

(5)internal : 指示命令,只能内部请求

(6)keepalive_timeout : 客户端连接超时时间,默认75

(7)keepalive_requests : 服务器能保持的活跃连接数(重要,高并发长连接可以调高),默认是100



(8)limit_rate:用于限制流量

(9)listen : server段,指定ip或者端口

(10)location:server段,根据uri配置访问,~区分大小写匹配,~*不区分大小写匹配

(11)root : 指定一个根文档目录

(12)send_timeout:默认是60,nginx会关闭一个不活跃的链接

(13)sendfile : 默认是off,是否使用sendfile()可以设置为on

(14)server : http段,用于配置虚拟主机

        (15)server_name : server段,机器名

(16)server_tokens : 是否在错误页或者响应头显示nginx版本号,默认为on,需要改为off

(17)tcp_nodelay:对keep_alive链接有效,默认为on

(18)tcp_nodelay : 在使用sendfile时有效,默认为off

(19)try_files,server,location段,检测文件存在性,不存在指定到内部错误提示



   

   


转载于:https://blog.51cto.com/lijinhuan/1582964