Nginx 配置及参数详解

Nginx Location 指令语法

如下就是常用的 location 配置的语法格式,其中modifier是可选的,location_match就是制定 URI 应该去往哪个配置的关键.

location optional_modifier location_match {
. . .
}
复制代码

Regular expressions(RE)或者字面量都可以用来定义modifier,如果 location 配置中制定了modifier,可能会改变 nginx匹配 location的方式,如下介绍几种最重要的modifier:

  • (none) 完全没有modifier表示 location会解释为前缀匹配,要确定匹配项,将根据从URI的开头匹配该location.
  • = 等号表示当前这个 location 会匹配一个确定的请求,配置什么就匹配什么请求,如果匹配上了,就会停止搜索.
  • ~ 波浪号表示当前这个 location 会当成一个大小写敏感的RE匹配.
  • ~\* 波浪号跟星号标识 location 会按照大小写不敏感的 RE 匹配.
  • ^~ 非表达式(RE)匹配,正则表达式将不会生效.

Ngnix Location的匹配顺序

对于每个请求来说,nginx 会选择最匹配的一个 location 来处理这个请求,nginx 其实就是通过对比这些 location 规则来选择一个 location,对比的顺序可以总结为:

  1. 首先匹配前缀匹配(没有 RE 表达式),针对当前这个请求,每个前缀匹配都匹配一遍.
  2. 搜索=匹配,如果当前请求匹配上了,搜索将会停止,直接使用这个这个 location.
  3. 如果第二步没有匹配上,nginx 会按照如下步骤继续搜索最长前缀匹配: 3.1 如果最长前缀匹配有^~这个modifier,nginx 会停止搜索并直接使用这个 location. 3.2 如果没有使用 ^~,暂存这个 location并且继续搜索.
  4. 只要最长前缀匹配被暂存和选中,nginx 就会看当前的 location 是否有大小写敏感的 RE(~~*),第一个匹配上这种会被当做有效的 location来处理这个请求.
  5. 如果没有 RE 的 location 匹配上,前面暂存的 location 就会被选中来处理这个请求.

注:所以 没有修饰符的 location 其实是很浪费资源的,可以用 ^~ 来替代.

常用配置

server {
#监听端口
listen 443;
#定义使用 访问域名
server_name xxx.com
#定义服务器默认的网站根目录位置
root /web/www; #设定本虚拟主机默认访问日志
access_log /var/logs/nginx.access.log main; #ssl证书配置
#ssl on; 最新版本已不用设置此参数,设置后可能无法启动
#证书文件 ,这里为相对于/etc/nginx/nginx.conf 文件的相对位置
ssl_certificate 1_xxx.com.crt;
#证书key文件
ssl_certificate_key 2_xxx.com.key;
# ssl session 超时
ssl_session_timeout 5m;
#ssl 协议级别
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#加密方式
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; #请求设置
location / {
#网站根目录,可使用全局设置
root /web/www;
#定义默认首页索引文件的名称
index index.html; } location ~ ^/ }

后续补充完善......

Nginx 配置及参数详解的更多相关文章

  1. Nginx 主配置文件参数详解

    Nginx 主配置文件参数详解 Nginx 安装完毕后,会有响应的安装目录,安装目录里 nginx.conf 为 nginx 的主配置文件, ginx 主配置文件分为 4 部分,main(全局配置). ...

  2. Redis 主从配置和参数详解

    安装redis 下载redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz 解压redis tar -xvf redis-.ta ...

  3. nginx的fastcgi_param参数详解

    在配置nginx的时候,有很多fastcgi_param参数,具体对应是什么值呢 引入:fastcgi_params 文件: fastcgi_params文件具体内容: postman 发送请求: n ...

  4. jboss jndi配置部分参数详解

    使用的是jboss7.1.1, jndi的配置在$JBOSS_HOME/standalone/configuration/standalone.xml中进行配置.配置jndi时有很多参数,解释下用到的 ...

  5. pureftpd安装配置-pureftp参数详解(一)

    1. 下载 #cd /usr/local/src/ #wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.g ...

  6. Nginx log日志参数详解

    $args #请求中的参数值$query_string #同 $args$arg_NAME #GET请求中NAME的值$is_args #如果请求中有参数,值为"?",否则为空字符 ...

  7. nginx的变量参数 详解

    $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为 ...

  8. Nginx中server_name 参数详解

    Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: server { lis ...

  9. nginx配置vhost配置文件详解

    //千锋PHP-PHP培训的实力派server { listen 80; server_name www.sina.com; root /data/www/sina; index index.php; ...

随机推荐

  1. 关于m3u8格式的视频文件ts转mp4下载和key加密问题

    一,利用网站浏览器F12键,利用谷歌浏览器插件找到视频的.m3u8文件,并打开. 二,打开m3u8文件后,里面有很多.ts的链接,和key的链接. 三,保存为html文件,下载ts文件,代码如下:可加 ...

  2. ddns+ros(routeros)+centos7.6+nginx+php+dnspod

    参考文章: http://www.myxzy.com/post-464.html https://www.cnblogs.com/crazytata/p/9686490.html php的源码下载: ...

  3. bat脚本清理15天前文件

    @echo offset max_days=15 set log_path="D:\backup_new" forfiles /p %log_path% /s /m *.* /d ...

  4. 20165214 2018-2019-2 《网络对抗技术》Exp9 Web安全基础 Week13

    <网络对抗技术>Exp9 Web安全基础 Week13 一.实验目标与内容 1.实践内容 (1).本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目.包括(SQL,XSS,CSR ...

  5. 【操作系统之六】Linux常用命令之less

    一.概念less 工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有 ...

  6. 《Linux就该这么学》培训笔记_ch15_使用Postfix与Dovecot部署邮件系统

    <Linux就该这么学>培训笔记_ch15_使用Postfix与Dovecot部署邮件系统 文章最后会post上书本的笔记照片. 文章主要内容: 电子邮件系统 配置Postfix服务程序 ...

  7. 什么是 ZFS文件系统?ZFS概念及特点简介

    什么是 ZFS? ZFS(Zettabyte File System)是由SUN公司的Jeff Bonwick领导设计的一种基于Solaris的文件系统,最初发布于20014年9月14日. SUN被O ...

  8. JSON -------- json与字符串之间的转换

    JSON 最常见的用法,从web服务器上读取JSON数据(作为文件或HttpRequers),将JSON 转换为JavaScript ,然后在网页中使用 1.JSON文本转换为JavaScript 对 ...

  9. python安装pyautogui

    一.问题在安装使用[pip install pyautogui]的时候会出现如下的错误: ERROR: Complete output from command python setup.py egg ...

  10. SQL系列(十一)—— 函数(function)

    SQL中的函数也非常多,而且不同的DBMS提供了相应的特殊函数.但是常用的共性函数大致可以分为以下几种: 函数类型 函数 数值函数 1.算术计算:+.-.*./ 2.数值处理:ABS()绝对值处理.P ...