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文件等等)。alias与root:root匹配是在制定目录地址下匹配,匹配结果为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。
参考文献
nginx路由文件配置的更多相关文章
- Nginx 路由转发配置(转)
Nginx 路由转发配置笔记 由于预算有限,只有一台服务器,想要玩的东西不少,所以这个台服务器上会提供多重服务,因此涉及到的nginx转发就必有重要了 由nginx做请求代理,提供多种服务 php搭建 ...
- Nginx日志文件配置与切割
Nginx日志的指令主要有两条: log_format,设置日志的格式 access_log,指定日志文件的存放路径.格式和缓存大小 两条指令在Nginx配置文件中的位置可以在http{……..}之间 ...
- 虚拟主机ip配置,nginx.conf文件配置及日志文件切割
今天粗略整理了一下虚拟主机配置,nginx.conf文件的配置,及日志文件的切割,记录如下: nginx虚拟主机配置:1.IP地址配置,2.绑定ip地址和虚拟主机详情:1.ip地址的配置:ifconf ...
- nginx.conf文件配置明细详解
#etnx运行的用户和用户组 user nginx nginx; #工作进程数,建议设置为CPU的总核数 worker_processes ; #全局错误日志定义类型,日志等级从低到高依次为: #de ...
- nginx使用手册--nginx.conf文件配置详解
#运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; ...
- nginx之文件配置
nginx配置规则 nginx由受配置文件中指定的指令控制的模块组成 伪指令分为简单伪指令和块伪指令 简单的指令由名称和参数组成,这些名称和参数之间用空格分隔,并以分号(;)结尾 块指令的结构 与 简 ...
- nginx编译文件配置(原)
1.在根目录的opt下创建文件夹software并wget一个nginx包进行解压,/opt/software/,解压后需要对软件包文件进行授权 2.cd到nginx目录输入id nginx 未安装插 ...
- nginx字体文件配置
http://www.doucode.com/nginx-support-font/ ====== nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { ...
- 搭建RTSP服务器时nginx的nginx.conf文件配置
worker_processes 1; events { worker_connections 1024;} http { include mime.types; default_type appli ...
随机推荐
- 【bzoj4444】[Scoi2015]国旗计划 倍增
题目描述 给出一个圈和若干段,问:对于所有的 $i$ ,选择第 $i$ 段的情况下,最少需要选择多少段(包括第 $i$ 段)能够覆盖整个圈? 输入 第1行,包含2个正整数N,M,分别表示边防战士数量和 ...
- OpenCV2.3.1在Win7+VS2010下的配置过程
1. 假定电脑上已经安装了VS2010程序,若没有,首先安装vs2010.下载OpenCV2.3.1,网址:http://sourceforge.net/projects/opencvlibrary ...
- CF97B:Superset——题解
http://codeforces.com/problemset/problem/97/B 题目大意:给n个点,添加一些点,使得任意两个点: 1.在同一条线上 2.以它们为顶点构成的矩形上有其他点. ...
- [学习笔记]2-SAT 问题
(本文语言不通,细节省略较多,不适合初学者学习) 解决一类简单的sat问题. 每个变量有0/1两种取值,m个限制条件都可以转化成形如:若x为0/1则y为0/1等等(x可以等于y) 具体: 每个变量拆成 ...
- 专题训练之AC自动机
推荐博客:http://www.cnblogs.com/kuangbin/p/3164106.html AC自动机小结 https://blog.csdn.net/creatorx/article/d ...
- 从MYSQL数据库查出指定格式的日期
1.用SQL语言控制: 格式如下: select DATE_FORMAT(t.startTime,"%Y-%m-%d %H:%i") AS startTime, DATE_FORM ...
- STL中的map和unordered_map
STL中的map和unordered_map map 头文件:#include 原理:std::map的内部实现了一颗红黑树,有对其键值进行排序的功能,所以map是一个有序的容器,map中的每一个元素 ...
- find_in_set 函数使用方法
find_in_set 函数使用方法 个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文...1,12,13 等等 . 现在有篇文章他既是 头条,又是 ...
- 题解【luoguP3644 [APIO2015]八邻旁之桥】
题目链接 题解 家和公司在同侧 简单,直接预处理掉 若 \(k=1\) 取所有的居民的\(\frac{家坐标+公司坐标}{2}\)的所有坐标的正中间建一座桥,使所有居民到的距离最小. 实现方法:线段树 ...
- java nio buffer读取数据乱码问题
public static void main(String[] args) throws IOException { String charsetName = "GBK"; St ...