nginx中文文档

Nginx 的请求处理有多个阶段,比如说rewrite、access、content等等,不同的配置字段属于不同的配置阶段,不同阶段的先后执行顺序不一样,例如rewrite在content阶段前面,就算你content阶段的内容在前面,也一样是rewrite先生效。

其中content阶段(根据URI查找内容)主要有index、autoindex、static三个先后次序。

匹配特性

贪婪原则

尽可能长的匹配路由。例如下面的配置,当访问路径/images/时,其实也会匹配到第一条规则,所以,长路径优先匹配。

server {
location / {
root /data/www;
} location /images/ {
root /data;
}
}

代理配置

简单的代理案例如下:

server {
listen 8080;//默认端口80
root /data/upl;//所有路径导入到/data/upl下 //proxy_pass字段用于表示代理
location / {
proxy_pass http://localhost:8080;
}
//~用于通配
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}

同时可以设置FastCGI代理,主要配置参数有fastcgi_pass,fastcgi_param等。

更多具体的代理配置参考文档Module ngx_http_proxy_module

常用字段解析

  • ssi:服务器端嵌入,默认配置为off,当配置为on的时候,服务器在将html发送到浏览器之前会先解析,然后将文件中的ssi指令解析,解析执行后的html会发送给浏览器(常见的主要有include文件等等)。

  • aliasrootroot匹配是在制定目录地址下匹配,匹配结果为path/uri,alias是在会用制定内容替换掉匹配的路径。例如下例:

location ~ ^/weblogs/ {
root /data/weblogs/abc;
}
location ~^/test/ {
alias /data/static/
}

当请求的URI是/weblogs/index/a.html时,那么实际定位到的地址是/data/weblogs/abc/weblogs/index/a.html;

当请求的URI是/test/ddd/a.html时,那么实际定位的地址是/data/static/ddd/a.html

Notice:

  • 使用alias时,目录名后面一定要加"/"。
  • alias可以指定任何名称。
  • alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
  • alias只能位于location块中。
  • index: 该指令通常用于指定首页文件,当在匹配location下找到index指定的文件时,会进行内部rewrite跳转,然后根据跳转后的新地址进行匹配location,否则放弃处理,交给下一阶段模块处理。

    例如:
    location / {
root /var/www/;
index index.html;
} location /index.html {
set $a 32;
echo "a = $a";
}

假设求情的URI为/,首先根据location,index配置生效,然后rewrite地址为/index.html,接着根据location配置,贪婪原则,首先匹配到/index.html然后输出a = 32

参考文献

  1. nginx中文文档
  2. Module ngx_http_proxy_module
  3. Nginx配置指令的执行顺序(七)

nginx路由文件配置的更多相关文章

  1. Nginx 路由转发配置(转)

    Nginx 路由转发配置笔记 由于预算有限,只有一台服务器,想要玩的东西不少,所以这个台服务器上会提供多重服务,因此涉及到的nginx转发就必有重要了 由nginx做请求代理,提供多种服务 php搭建 ...

  2. Nginx日志文件配置与切割

    Nginx日志的指令主要有两条: log_format,设置日志的格式 access_log,指定日志文件的存放路径.格式和缓存大小 两条指令在Nginx配置文件中的位置可以在http{……..}之间 ...

  3. 虚拟主机ip配置,nginx.conf文件配置及日志文件切割

    今天粗略整理了一下虚拟主机配置,nginx.conf文件的配置,及日志文件的切割,记录如下: nginx虚拟主机配置:1.IP地址配置,2.绑定ip地址和虚拟主机详情:1.ip地址的配置:ifconf ...

  4. nginx.conf文件配置明细详解

    #etnx运行的用户和用户组 user nginx nginx; #工作进程数,建议设置为CPU的总核数 worker_processes ; #全局错误日志定义类型,日志等级从低到高依次为: #de ...

  5. nginx使用手册--nginx.conf文件配置详解

    #运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; ...

  6. nginx之文件配置

    nginx配置规则 nginx由受配置文件中指定的指令控制的模块组成 伪指令分为简单伪指令和块伪指令 简单的指令由名称和参数组成,这些名称和参数之间用空格分隔,并以分号(;)结尾 块指令的结构 与 简 ...

  7. nginx编译文件配置(原)

    1.在根目录的opt下创建文件夹software并wget一个nginx包进行解压,/opt/software/,解压后需要对软件包文件进行授权 2.cd到nginx目录输入id nginx 未安装插 ...

  8. nginx字体文件配置

    http://www.doucode.com/nginx-support-font/ ====== nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { ...

  9. 搭建RTSP服务器时nginx的nginx.conf文件配置

    worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type appli ...

随机推荐

  1. 关于c++中public & private方法调用问题

    class IDNoIdentifier { public: IDNoIdentifier(); ~IDNoIdentifier(); typedef vector<cv::Rect> C ...

  2. nginx 反向代理 ,入门

    入门:http://www.cnblogs.com/jjzd/p/6691500.html 启动,重新加载:http://blog.csdn.net/zhongguozhichuang/article ...

  3. 网页添加提示音,用setInterval

    如果一条数据通过审核了,修改数据库中一个值,用户怎么异步动态知道自己的记录通过审核了呢,我是通过音乐和提示的方式. 网页中添加如下代码: <style> #notify { positio ...

  4. HUAS 1476 不等数列(DP)

    考虑DP. 如果把转移看出当前位填什么数的话,这样是有后效性的. 如果考虑当前的序列是将1至n依次插入序列中的话. 考虑将i插入1到i-1的序列中,如果插入到<号中或者首部,那么最后就会多出一个 ...

  5. iOS图片上传后被旋转的问题

    最近用PHP做了一个图片合成程序,前端是通过HTML的file input选取自定图片,POST到php后台调整尺寸后与事先准备好的背景图进行合成. 通过测试发现,上传后的自定图片有的被旋转了,有的是 ...

  6. C++中swap函数

    本文是我用到swap函数时,对其产生好奇,所以结合网上有关博文写下的.个人水平有限,若有错误的地方,欢迎留言指出.谢谢! 一.通用的函数交换模板 template<class T> voi ...

  7. HDOJ.2084 数塔(DP)

    数塔 点我挑战题目 题意分析 DP的思想,自上而下计算. [这几天比较忙 有空补上] 代码总览 /* Title:HDOJ.2084 Author:pengwill Date:2017-1-14 */ ...

  8. NOIP2017 列队——平衡树

    平衡树蒟蒻,敲了半天. 其实思路很简单,就是把许多个人合并成一个区间.必要的时候再拆开.(是不是和这个题的动态开点线段树有异曲同工之妙?) 每次操作最多多出来6个点. 理论上时间复杂度是nlogn,空 ...

  9. swift4.0闭包

    http://blog.csdn.net/bddzzw/article/details/78276054

  10. 第01篇 说一下Setting,我一直没有讲过

        settings 调整 settings 中的设置是非常关键的,它们会改变 MyBatis 的运行时行为.下表描述了设置中各项的意图.默认值等. 设置参数 描述 有效值 默认值 cacheEn ...