码迷,mamicode.com
首页 > 其他好文 > 详细

nginx之配置文件简析

时间:2017-12-08 16:53:28      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:端口   for   检查   绑定   dir   nginx   cep   off   reading   

user username [groupname];运行worker进程的用户名(组名)

pid /path/pid_file;PID文件的存储位置

worker_rlimit_nofile 65535;所有的work进程所能打开的文件句柄数量

worker_processes 4;worker进程的个数,通常是CPU的个数减去1

worker_cpu_affinity 00000001 00000010 00000100 00001000;worker进程绑定cpu核心,减少进程在CPU间的切换消耗。如果开机时,将系统的内核都绑定到指定CPU上,就能完全消除线程切换的消耗

timer_resolution 100ms;nginx的时间解析度,解析度越低,调用系统时间的消耗会降低

woker_priority -10;指定worker进程的nice值(-20,19)

accept_mutex {off|on};worker进程调度的时候是否使用轮询调度

use {epoll|rtsig|select|poll};建议自动选择,不需要配置

woker_conections 10240;设定单个worker进程所能接收的链接数量

##--with-debug编译安装nginx时启用该选项,可使用以下调试配置

daemon {on|off};是否以守护进程的方式运行程序

master_process {on|off};是否启用master/worker模式运行

error_log file_path 级别;错误日志的输出位置和日志级别

###http模块,nginx作为web服务器使用的配置,与http相关的指令仅能够放置在http、server、location、upstream、if的上下文中

http {

log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘

access_log /logs/nginx/access.log main;

keepalive_timeout #;长连接超时时间,默认75s

keepalive_requests #;每个长连接允许的请求资源数量

keepalive_disable [msie6|safari|none];针对特定的浏览器关闭keepalived长连接

tcp_nodely on|off;是否取消发送报文合并,合并多个小资源为一个报文,对用户的体验不好,建议为on

client_header_timeout #;读取http请求报文的首部的超时时长

client_body_timeout #;读取http请求报文body的超时时长

send_timeout #;发送报文的超时时长

upstream {

...

}

location URL {

root "/path/to/dir";

if .. {

...

}

}

server { #定义一个虚拟主机

listen 80;监听端口

server_name www.baidu.com;

#主机名,可以跟多个主机名,名称可以使用正则表达式(~)或通配符:优先精确匹配,其次左侧通配符匹配检(*.baidu.com),再其次右侧通配符检查匹配(mail.*),最后正则表达式匹配,都匹配不成功后使用default_server,没有default_server配置时,使用第一个server。

root "/vhost/web1";

#设置资源路径根目录,可以放在http,server,location的上下文环境中

location /image/  {

root "/image";

auth_basic "only for VIP";#认证时的提示文字

auth_basic_user_file /etc/nginx/users/.htpasswd;

#认证文件,尽量使用隐藏文件。htpasswd -c -m /etc/nginx/users/.htpasswd tom添加tom用户

}

#允许根据用户请求的URL来匹配,进行控制处理。可以嵌套多层,匹配方式(=|~|~*|^~)。

= 精确匹配,优先级最高

~^ 非正则匹配,前缀匹配

~  正则表达式匹配

~* \.(txt|tex)$ 不区分大小写的正则表达式

/image/ 无任何符号的匹配,优先级低于正则表达式的前缀匹配,长度优先

/ 无符号匹配,之前的都匹配不到时的默认配置

if ($http_user_agent ~* MSIE){

#if上下文可以用在server和location的上下文中,也可以嵌套。

匹配条件:1、变量名,变量名是空值或者以0开头的值为假,其他为真

2、变量表达式,使用=,!=进行比较

3、使用正则表达式匹配:~,~*,!~,!~*

4、判断是否为文件:-f,!-f

5、路径:-d,!-d

6、文件存在:-e,!-e

7、文件是否有执行权限:-x,!-x

rewrite ^(.*)$ /msie/$1 break; #匹配微软浏览器,指定重定向加载文件

}

location ~* \.(jpg|gif|png|jpeg)$ {

#防盗链图片

valid_referer none blocked www.baidu.com;#指定合法图片引用

if ($invalid_referer) {

#非法引用重定向

rewrite ^/ http://www.baidu.com/403.html;

}

}}

server {

 location / {

index index.html;默认首页

error_page 404 /404.html;重定义404页面

error_page 404 =200 /404.html;404错误以200状态码返回,并返回404.html页面

alias "/image/test/";路径映射,完全映射,root是根路径映射

deny 172.16.0.0/16;

allow all;

rewrite ^/images/(.*\.jpg)$ /imgs/$1 break;#重定向文件路径,将images切换为imgs。应用场景:域名更换过度,seo优化,将动态文件转换为伪静态路径

#rewirte使用的flag:last表示此次重定向后,不再匹配之后的rewrite,直接将报文修改后,重新发送给nginx处理,重新进行匹配处理;break表示此次重定向处理后,不再匹配之后的rewrite,而且新生成的报文也不会再接收当前location下的rewrite匹配,这样能顾避免last引起的匹配死循环;

rewrite ^/images/(.*)$ http://www.baidu.com/$1 redirect;#redirect表示以302临时重定向返回新的URL给客户端;permanent表示以301永久重定向返回新的URL给客户端;使用redirect和permanent的时候新的要直接写新的url

}

location /status {

#显示nginx的状态:active connection:6 活动连接数,包括代理的 server accepts handled reauests 241(已经接受的链接) 241(已经处理的链接) 431(已经处理的请求) reading:0(正在接收的连接数) writing:1(正在处理的连接数) waiting:4(当前活动的连接数,往往会比reading+writing的数量多一些)

stub_status on;#该命令只能配置在loation中

allow from 172.16.0.0/16;

deny all;
}

}

}

 

nginx之配置文件简析

标签:端口   for   检查   绑定   dir   nginx   cep   off   reading   

原文地址:http://www.cnblogs.com/bianhongxiang/p/7990177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!