nginx 常用指令及使用 (二)

http模块相关指令

1 alias [file|dirpath]

语法:alias [file|dirpath]

默认值:no

使用环境:location

作用:用于在url和文件系统路径之间实现映射,跟root类似,但是网页文件的根路径不会改变只是改变请求url的文件系统路径

eg: location /i/ {alias /spool/w3/images/;}

访问 /i/top.png 会返回文件 /spool/w3/images/top.png在含有正则的location中不能使用alias

可以使用root和rewrite的组合来实现


2 error_page

语法:error_page code [code ...] [=answer-code] uri

默认值:no

使用环境:location http server if

作用:用于设置如果出现指定的状态码,返回指定的uri页面

还可以更改返回的状态码

eg: error_page 400 =200 /error.html 遇到400的响应会返回error页面,且响应码为200


3 if_modified_since

语法:if_modified_since [off|exact|before]

默认值:if_modified_since exact

使用环境:location http server 

作用:if_modified_since是浏览器发送的server的header信息。当再次请求本地缓存页面时,brower会先用if_modified_since将nginx server先前发送过来的last-modify的时间戳发送回去验证,通过这个时间戳验证brower的缓存是不是最新的,如果是,返回304否返回新的内容,这样可以减少网络传输,加快响应,也减轻server的负担

off不检查

exact时间完全符合

before文件修改时间应该早于if-modified-since请求头中的时间


4 index

语法:index file [file ...]

默认值:index index.html

使用环境:location http server 

作用:用来设置nginx访问的默认首页文件

autoindex on; //设置显示目录


5 keepalive_timeout

语法:keepalive_timeout [time]

默认值:keepalive_timeout 100

使用环境:location http server 

作用:使客户端的连接长期有效,当出现对服务器的后期请求时,可以避免反复的建立连接,大部分服务器都支持,但对于负载较重的网站还有一个问题就是,虽然为客户端保持连接有一定好处,但暂停期间本来可以释放的资源仍在占用,当web服务器和应用服务器在同一台机器上运行时,它对资源利用的影响更加明显


6 keepalive_requests

语法:keepalive_requests num

默认值:keepalive_requests 100

使用环境:location http server 

作用:设置一个keep-alive可以使用的次数,一次请求结束后,若该连接使用的次数未达到n,不会主动断开连接,直到keepalive_timeout设置的实际才断开连接


7 large_client_header_buffers

语法:large_client_header_buffers num size

默认值:large_client_header_buffers 4 4k/8k;

使用环境:http server 

作用:用于设置client请求的header头缓冲区的大小,默认4k客户端请求行大小不能超过该值,否则会报错


8 limit_rate

语法:limit_rate speed

默认值:no

使用环境:http server location if

作用:用来限制下载速度,一般用在http提供下载的地方,单个连接有效,若开启两个连接下载,速度会是该值的2倍


8 limit_rate_after

语法:limit_rate_after size

默认值:limit_rate_after 1m

使用环境:http server location if

作用:设置一个字节数,下载的字节数大于该值后开启限速


9 listen

语法:listen addr:port [default[backlog=num |rcvbuf=size|sendbuf=size|accept_filter=filter|deffered|bind|ssl]]

默认值:limit_rate_after 1m

使用环境:server

作用:设置主机监听的ip和端口,只写ip,端口默认80

eg: listen 127.0.0.1:8000

    listen 127.0.0.1

    listen *:8000   

监听ipv6实例:listen [::]:8000

设置支持http和https 

listen 80;

listen 443 default ssl;


10 location

语法:location [=|~|~*|^~] /uri/ {...}

默认值:no

使用环境:server

作用:允许不同的url类型进行不同的设置,可以使用字符串或者正则,使用正则必须使用下边的前缀

1)~表示区分大小写的匹配

2)~*表示不区分大小写的匹配

在匹配的过程中,nginx将最先匹配字符串,然后匹配正则表达式,匹配到第一个正则表达式后会停止搜索,若匹配到正则表达式,则使用正则搜索的结果,否则使用字符串匹配的结果

可以使用^~来禁止匹配到字符串后再去检查正则表达式,匹配到uri后将停止查询

使用=表示精准匹配,若找到匹配uri停止查找,eg location =/ 只能匹配到/而/test.html则不能被匹配,eg:

 
   
  1. location =/ {
  2. #仅能匹配/
  3. [conf A]
  4. }
  5. location / {
  6. #匹配任意以/开头的查询,/admin/会被匹配
  7. [conf ]
  8. }
  9. location ^~ /images/ {
  10. #匹配任意以/images/开头的字符串且,停止搜索,所以,正则表达式不会被检查
  11. [conf C]
  12. }
  13. location ~* \.(gif|png|jpg|jpeg)$ {
  14. #匹配任意以.(gif|png|jpg|jpeg)结尾的请求,但 /images/内的请求将使用conf C
  15. [conf D]
  16. }
  17. 匹配结果示例:
  18. /                     -> conf A
  19. /test/test.html       -> conf B
  20. /images/1.gif         -> conf C
  21. /test/img/1.png       -> conf D

11 root

语法:root path

默认值:root html

使用环境:server http location if

作用:主要用来指定请求的文档根目录


12 server

语法:server {...}

默认值:no

使用环境:http

作用:用于配置虚拟主机,使用listen表示监听的端口 使用server_name来设置虚拟主机的名称

处理的优先级:1)全名 2)通配符开头的*.com  3)通配符结尾的test.*  4)使用正则的


13 server_tokens

语法:server_tokens on | off

默认值:no

使用环境:http server location

作用:控制是否在错误页面或者服务器header头显示nginx版本号给客户端


http access模块

提供基于host名称的访问限制 eg:

location / {

  deny 192.168.1.1;

  allow 192.168.1.0/24;

  allow 10.0.1.0/16;

  deny all;

}

allow指令指定允许访问的ip,deny指定禁止某些ip访问某些vhost


你可能感兴趣的:(nginx)