Nginx配置

#  注释

指令总是以;结束

work_process只接受一个数字值

include 对特定文件的包含


指令块  指令由模块提供,例如

events{

}

不同区段能互相嵌套

http{

server{

location ...{

}

}

}

一个http区段可以声明买多个server区段,http是用以和imap区分,imap是邮件服务器代理功能

一个server区段可以配置一个虚拟主机

server区段可以插入多个location区段,当需要对特定的路径进行URI匹配,这些location允许对这些路径单独设置。

配置的继承:一个区段中嵌套其他区段,那么背嵌套的区段会继承其父区段的设置。

access_log指令指定对这个服务器的所有的http请求都会记录在这个文本文件中。


指令值的单位

k K或者m M大小

ms毫秒 s秒 m分钟 h小时 d天 w周 M月 y年


变量

模块提供各种变量,例如http核心模块定义了$nginx_version变量,有些指令不允许使用任何变量。


字符串值

将字符串用做指令值,可以有三种形式,首先可以没有引号root /home/www;

特殊符号例如空格符“ ”,分号;或者花苦熬好{},就需要使用单引号或者双引号括其root '/home/my web';


核心模块指令

Events模块:配置网络机制,指令的一些参数会对nginx应用程序性能影响。

Configuration模块:是简单的模块,它提供的include指令能将其他文件包含在nginx配置文件中,

在配置文件任何地方都可以插入该指令,并且在它后面只有一个参数:文件路径

include /file/path.conf

如果没有绝对路径,那么文件的路径将和配置文件的目录相关,也就是与配置文件同一目录。


默认的配置文件nginx.conf:效率较高,一般不用修改。


server {

listen 80;//通过80端口监听TCP套接字

server_name localhost;//访问地址http://localhost/

location / {

root html;

index index.html;

}

error_page 500 502 /50x.html;

location =/50x.html{

root html;

}

}


http模块 提出来三个逻辑区块:

http 协议级别,该区段嵌入配置文件的根部。

server server级别,允许什么一个站点,该区段只能用在http区段。可以有多个server区段。

location URI级别,定义一组设置,应用于网站的一个特定位置。

http{

gzip on;

server {

server_name localhost;

listen 80;

location /downloads/{

gzip off;

#该指令只应用于/downloads/目录下找到的文件

}}}


路径和文档

root 定义文档的根目录,root /homt/www

alias只能放在location中,为nginx指定的文件路径提供别名

http{

server{

server_name localhost;

listen 80;

root /var/www/html

location /admin/{

alias /var/www/locked/;

}

http://localhost/  由目录  root /var/www/html/来提供;

http://localhost/admin/由/var/www/locaked/来提供

root指令的值不能改变,root指令指定的文件根目录值不能改变。

error_page  允许修改访问URI所产生的HTTP代码,并选择性的将其替换为其他代码。

index 定义一个默认页面,如果在请求中没有指定文件名即index页面,nginx会使用该页面提供服务。可以指定多个文件名,但使用第一个找到的文件。

如果没有找到,nginx要么尝试产生一个自动的文件索引,要么返回403错误页。

例如 index index.php index.html

try_files 试图找到指定的文件,如果都不在,就跳到命名location区段或者指定的URI。

例如:

location / {

try_files $uri $uri.html  $uri.php  $uri.xml

@proxy;

}

location @proxy{

proxy_pass 127.0.0.1:8080

}

如果URI不符合现有的文件,nginx会给URL附加.html,如果失败继续尝试.php .xml。如果都失败,则由另一个location @proxy处理。


模块变量

请求头 $http_host,$http_user_agent;$http_referer;$http_cookie等

相应头

Nginx产生的变量 

$arg_XXX  允许访问查询字符串GET参数,XXX替换为具体参数

$args所有结合在一起的字符串查询参数

$query_string 如同$args

Location区段  语法  location [=|~|~*|^~|@] pattern {...}  第一个可选参数是一个符号,称作location修饰符,它用来定义nginx的匹配模式,也定义非常自然的模式,简单字符串或者正则。


修饰符 符号=

URI的定位必须与指定的模式精确匹配,该模式在这里限定为一个简单的文本字符串,不能使用正则。

server{

server_name w.com;

location=/abcd {

[...]

}}

http://w.com/abcd  可以

http://w.com/ABCD  可以

http://w.com/abcd?a=1  可以

http://w.com/abcd/  不可以

http://w.com/abcde 不可以


修饰符 无符号

URI的定位必须以指定的模式开设,不能使用正则。

server{

server_name w.com;

location /abcd {

[...]

}}

http://w.com/abcd  可以

http://w.com/ABCD  可以

http://w.com/abcd?a=1  可以

http://w.com/abcd/  可以

http://w.com/abcde 可以


修饰符 ~

URI与正则匹配必须区分大小写

server{

server_name w.com;

location ~ ^/abcd$ {

[...]

}}

http://w.com/abcd  可以

http://w.com/ABCD  不可以

http://w.com/abcd?a=1  不可以

http://w.com/abcd/  不可以

http://w.com/abcde 不可以


修饰符 ~*

URI与正则匹配 不区分大小写

server{

server_name w.com;

location ~* ^/abcd$ {

[...]

}}

http://w.com/abcd  可以

http://w.com/ABCD  可以

http://w.com/abcd?a=1  可以

http://w.com/abcd/  不可以

http://w.com/abcde 不可以

^~ 类似于无标志模式,URI的定位必须以指定模式开始,不同的是,如果模式匹配,那么nginx就停止搜索其他模式。

@ 定义命名location区段,这些区段客户端不能访问,只可以由内部产生的请求访问,例如try_files或者error_page


$匹配行结束符。例如正则表达式weasel$ 能够匹配字符串"He's a weasel"的末尾,但是不能匹配字符串"They are a bunch of weasels."。 
^匹配一行的开始。例如正则表达式^When in能够匹配字符串"When in the course of human events"的开始,但是不能匹配"What and When in the"。
*匹配0或多个正好在它之前的那个字符。例如正则表达式.*意味着能够匹配任意数量的任何字符。
\这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配。例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值