设为首页 收藏本站
查看: 945|回复: 0

[经验分享] 一、nginx基本模块以及模块配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-28 09:33:09 | 显示全部楼层 |阅读模式
有很多模块,重点是下面三个模块,主要是其配置
一、内核模块(coreModule)
1、主要是nginx.conf的顶层,根部,也就是配置开始部分
2、命令说明
  (1)daemon:生产环境不需要改,默认为on,如果是off则启动nginx会运行在前台
  (2)env:环境变量重新定时,一般不需要设置
  (3)debug_points:激化所有设置的调试点
  (4)error_log:错误日志(包括FastCGI)文件指定,需要设置,可以在http,server,location设置。如
   error_log  /home/wwwlogs/nginx_error.log  crit;
   日志级别(debug,info,notice,warn,error,crit)debug最详细,crit报告关键错误
   关闭方式:error_log  /dev/null  crit;不要写成error_log off;会放到off文件去
  (5)include:包含文件,如include vhost/*.conf;表示包含当前nginx.conf所在目录下的vhost目录下的所有文件
  (6)lock_file:关于异步互斥,锁的问题,一般不需要指定
  (7)master_process:默认为on,表示使用一个master多个worker方式,不要设置
  (8)pid:设置nginx的pid文件,可设置,如pid /usr/local/nginx/logs/nginx.pid;然后可以使用kill来杀死进程
  (9)ssl_engine:无视,设置想要的openssl引擎
  (10)timer_resolution:无视,设置系统调用时间
  (11)user:默认使用nobody组运行,可以设置
  (12)worker_rlimit_nofile:一个worker可以同时处理的文件数量
  (13)worker_processes:默认值是1,cup使用率较高的时候,可以把其设置为cpu的核数一致

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 * master_process
反向代理最大客户端连接数 = worker_connections/4 * master_process
(4)use : 使用的时间驱动类型
       dev/poll
   epoll 基于linux2.6+下的有效模型
   eventport
   kquque
   rtsig
   select
   poll
(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 '
  '"$status" $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for" "$request_time"';

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
http://qa.blog.163.com/blog/static/19014700220134771052763/

(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段,检测文件存在性,不存在指定到内部错误提示








运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-34017-1-1.html 上篇帖子: 使用rpm-build制作nginx的rpm包 下篇帖子: 二、nginx模块优化和进程管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表