nginx配置规则

nginx由受配置文件中指定的指令控制的模块组成

伪指令分为简单伪指令和块伪指令

简单的指令由名称和参数组成,这些名称和参数之间用空格分隔,并以分号(;)结尾

块指令的结构 与 简单指令的结构相同,但是它以分号(而不是分号)结尾,并带有一组用花括号({和})括起来的附加指令

如果块指令可以在括号内包含其他指令,则将其称为上下文(示例:事件,http,服务器和位置)。

放置在任何上下文外部的配置文件中的指令都被视为在主上下文中。 事件和http指令位于主上下文中,服务器位于http中,并且位于服务器中。

井号(#)后面的所有内容属于注释。

示例

简单指令

worker_processes  1;
user nobody;

块指令

events {
worker_connections 1024;
}

提供静态文件

提供静态文件的含义即:设置查找文件的路径,设置索引文件。

示例:

worker_processes  1;

events {
worker_connections 1024;
}
http {
server {
location / {
root /data/www;
} location /images/ {
root /data;
}
}
}

服务器块讲解如下:

  • server标识一个服务器块,server必须包含在http代码块内;
  • server里面可以配置监听、前缀等参数;
  • location标识匹配的前缀,location匹配有一个原则,最先匹配最长长度;如上例中有两个前缀'/'与'/images/',
  • location前缀代码块中root参数标识匹配的路径;
  • root参数既可以放在server服务器块中,也可以放在location匹配路径中;

简单代理

示例:设置简单的站点代理

worker_processes  ;

events {
worker_connections ;
}
http {
server {
location / {
proxy_pass http://localhost:8080;
}
location /images/ {
root /data;
}
} server {
listen ;
root /data/up1; location / {
}
}
}

服务器块(代理)讲解:

  • 在第一个 server 下的 location 代码中加入 proxy_pass 参数,用来设定反向代理的URL;
  • 默认的server中如果没有listen选项,则表示默认监听80端口,不可以在N个server中含有2个默认的listen;

正则表达式

示例:设置一个简单的正则表达式进行文件匹配

worker_processes  ;

events {
worker_connections ;
}
http {
server {
location / {
proxy_pass http://localhost:8080;
}
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
} server {
listen ;
root /data/up1; location / {
}
}
}

正则表达式讲解:

  • 正则表达式应该以波浪符号(~)开头,波浪符号后面有空格
  • 正则表达式小括号内表示要匹配的名称,如果有多个名称,用管道符(|)进行分隔
  • 正则表达式后面的目录应该用的是反斜杠(\),而不是正斜杠(/)

设置FastCGI代理

nginx之文件配置的更多相关文章

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

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

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

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

  3. nginx路由文件配置

    nginx中文文档 Nginx 的请求处理有多个阶段,比如说rewrite.access.content等等,不同的配置字段属于不同的配置阶段,不同阶段的先后执行顺序不一样,例如rewrite在con ...

  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编译文件配置(原)

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

  7. nginx字体文件配置

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

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

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

  9. nginx 的基本配置

    安装(mac):关于brew  的问题:http://www.cnblogs.com/adouwt/p/8042201.html brew install nginx  启动: brew servic ...

随机推荐

  1. Java 从入门到进阶之路(十九)

    在之前的文章我们介绍了一下 Java 中的Object,本章我们来看一下 Java 中的包装类. 在 Java 中有八个基本类型:byte,short,int,long,float,double,ch ...

  2. 0006 列表(ul、ol、dl)

    1. 列表标签(重点) 学习目标 理解 无序列表的应用场景 自定义列表的应用场景 应用 无序列表语法 自定义列表语法 问? 前面我们知道表格一般用于数据展示的,但是网页中还是有很多跟表格类似的布局,如 ...

  3. Spring MVC拦截器配置

    Spring MVC拦截器配置 (1)自定义拦截器 package learnspringboot.xiao.other; import org.springframework.web.servlet ...

  4. C++简单项目--贪吃蛇

    在800*600的地图上,蛇的初始长度为3节,用数组记录每一节的位置(每个正方形左上角的坐标),每一节为长度为10的正方形,初始方向向右.随机生成30个障碍物的的位置,随机生成食物的位置.吃到食物之后 ...

  5. 「UVA10810」Ultra-QuickSort 解题报告

    题面 看不懂?! 大概的意思就是: 给出一个长度为n的序列,然后每次只能交换相邻的两个数,问最小需要几次使序列严格上升 不断读入n,直到n=0结束 思路: 交换相邻的两个数,这不就类似冒泡排序吗?但是 ...

  6. Linux中的零拷贝

    零拷贝 本文图片和一些内容均来自后面的参考,非原创只是把文章中的一些关键内容整理一下,算作是一个学习笔记. 传统的I/O操作 传统的IO操作是用户应用程序只是需要调用两个系统调用 read() 和 w ...

  7. 解决elment 动态多选框组(el-checkbox-group)无法设置默认值问题

    <el-checkbox-group v-model="form.showProperty"> <el-checkbox v-for="(item,id ...

  8. 对Java中可变参数的理解

    说明 可变参数:是DK1.5之后出现的新特性,其实可变参数是0.1.2.3.....个参数的数组 使用前提 当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式 修饰符 ...

  9. JVM系列七(JIT 即时编译器).

    一.概述 即时编译器(Just In Time Compiler),也称为 JIT 编译器,它的主要工作是把热点代码编译成与本地平台相关的机器码,并进行各种层次的优化,从而提高代码执行的效率. 那么什 ...

  10. Spring Boot2 系列教程 (十五) | 服务端参数校验之一

    估计很多朋友都认为参数校验是客户端的职责,不关服务端的事.其实这是错误的,学过 Web 安全的都知道,客户端的验证只是第一道关卡.它的参数验证并不是安全的,一旦被有心人抓到可乘之机,他就可以有各种方法 ...