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. 第四阶段:2.从零打造一款工具APP产品

    1.APP:安卓跟IOS(根据目标用户选择 ,那个先做哪个后做,APP的通过需要审核,其中也有很多技巧). 同时注意设计模版的使用(提高效率).竞品分析也是少不了的.

  2. 循环语句作业与循环补充(continue与break)

    作业: 1.使用while循环输入1 2 3 4 5 6 8 9 10(没有7) n = 1 while n < 11: if n == 7: pass else: print(n) n = n ...

  3. Unity3D小游戏开发之两个我踩过的坑

    最近在开发一个植物大战僵尸小游戏,今天写了一早上的代码,踩了两个坑,这两个坑的位置分别位于触发器和数据转换,写这篇博文以此来让其他程序员不要再去踩这两个坑. 1.我在做简易僵尸模型的时候,这个僵尸模型 ...

  4. java通过freemarker模板导出pdf

    需求:将网页内容导出为pdf文件,其中包含文字,图片,echarts图 原理:利用freemarker模板与数据渲染所得到的html内容,通过ITextRenderer对象解析html内容生成pdf ...

  5. dos2unix命令 – 将DOS格式的文本文件转换成UNIX格式

    今天做题的时候,出现了个很冷门的: 查找子目录src下所有后缀为.txt的文件执行dos2unix命令,把文件从Dos格式转换为Linux格式,正确的命令是:find src "*.txt& ...

  6. Java手写数组栈

    public class ArrayStack{ private String[] items; //数组 private int count; //栈内元素 private int n; //栈大小 ...

  7. 7个效果震憾的HTML5应用组件

    在HTML5的世界里,任何文本.图像都可以变得令人难以想象,很多HTML5应用也都已经随着浏览器的升级而变得运行飞速,而且兼容性也越来越好.下面为大家介绍7款效果震憾的HTML5应用组件,HTML5是 ...

  8. Django之Session与Cookie

    目录 一.cookie Cookie的由来 什么是Cookie Cookie的原理 查看Cookie cookie与session的作用 二.Django中操作Cookie 获取Cookie 设置Co ...

  9. 关于revit的外部扩展存储

    最近被revit的外部扩展存储搞得死去活来,作为日后再次使用的预防针,此处随手留下印记,以作警示. 首先我们知道外部扩展存储ExtensibleStorage是revit提供给revit二次开发人员用 ...

  10. 如何设计一个优雅的RESTFUL的接口

    show me the code and talk to me,做的出来更要说的明白 我是布尔bl,你的支持是我分享的动力! 一 .引入 设计接口是我们开发人员的日常操作.当我们把接口交给前端人员时, ...