代码: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