nginx使用与配置入门指南
这是一篇关于nginx使用与配置的入门指南,但不包括nginx的编译与安装。我假定你知晓如何安装nginx。对大多数Linux系统来说,nginx都已经存在于它们的软件包里,直接使用系统提供的软件管理工具安装即可。
nginx根据配置文件决定如何工作。配置文件的目录一般可能在以下几个位置:/usr/local/nginx/conf, /etc/nginx, /usr/local/etc/nginx。
启动,停止和重读配置文件
直接运行执行文件就可以启动nginx了。启动后,可通过-s参数控制它:
nginx -s signal
这个signal和Linux系统里的signal不是一回事。它可取以下几个值:
- stop - 快速关闭
- quit - 妥善关闭
- reload - 重读配置文件
- reopen - 重新打开日志文件
stop和quit的区别在于,quit会等待当前正在进行的所有服务完成后才退出。
如果你修改了配置文件,可以通过下面的命令让nginx重读配置:
nginx -s reload
在这条命令之后,对每一个新的请求,都将使用新的配置文件,而该命令前未完成的请求仍使用已有配置。
静态内容服务配置
nginx安装好后,已经提供了默认的配置文件。观察默认的配置文件我们可以发现,它是由嵌套的配置块组成,每个配置块都由一对大括号标记。最醒目的就是server块,用于标记一个服务器:
server {
listen 80; # 监听端口。一行以分号结尾;注释标记与bash一样
server www.example.com; # 网站名称
}
现在nginx知道对于服务器www.example.com:80要使用上面的server块,但还不知道如何解析URI。我们在server块内部添加location块:
server {
listen 80; # 监听端口。一行以分号结尾;注释标记与bash一样
server www.example.com; # 网站名称
location / {
root /data/www
}
}
nginx比较location后面的内容(“/”)和http请求中的URI。如果匹配,那么就将URI附加到root字符串的后面,作为所请求的资源在本地文件系统中的位置。例如对于http请求www.example.com/abc/index.html,对应本地文件系统的位置在/data/www/abc/index.html。
如果一个server块内有多个location,那么将匹配最长的那个。我们可以利用这点,将不同的资源防止不同的位置。例如,我们将所有图片放在了/data/images,并且希望当浏览器送出http://www.example.com/images时从该目录读取文件,那么location块就是下面这个样子:
location /images/ {
root /data
}
这里要注意的是,匹配过程只进行一次(最长匹配),如果在本地文件系统中没有找到请求的资源,那么将响应喜闻乐见的404,而不会尝试较短的匹配。
作为代理服务器
nginx的常用方式之一是将其作为代理服务器:接收请求,将请求传递给被代理的服务器,接收响应,将响应发送给客户端。
下面我们来配置一个基本的代理服务器:它使用本地文件系统来服务图片请求,将其它请求转发到后端服务器。
首先我们新增一个server块:
server {
listen 8080;
root /data/upl;
location / {
}
}
这个服务器使用端口8080。我们将root小节写在了sever块中而不是location块,对于没有root段的location,将使用server块里的root。
现在让我们回到上一个server。我们需要识别所有的图像文件(我们假定图像文件只有三种:gif,jpg,png)。修改后的location如下:
location ~\.(gif|jpg|png)$ {
root /data/images;
}
我们看到了熟悉的正则表达式:这个location匹配任何以gif或jpg或png结尾的URI。正则表达式必须以“~”符号作为前缀。
nginx首先检查最长匹配的location块并记住,然后检查正则表达式。如果正则表达式匹配,则使用其中的locaiton;否则就使用刚记住的最长匹配location块。
最终的代理服务器配置如下:
server {
location / {
proxy_pass http://localhost:8080/;
}
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
nginx使用与配置入门指南的更多相关文章
- Webstorm10.0.3破解程序及汉化包下载、Webstorm配置入门指南
核心提示: WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscri ...
- Nginx 的安装配置入门(mac)
1.安装Nginx服务器: 执行命令 brew install nginx 安装完以后,可以在终端输出的信息里看到一些配置路径: /usr/local/etc/nginx/nginx.conf (配置 ...
- Vue.js 入门指南之“前传”(含sublime text 3 配置)
题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...
- nginx配置入门
谢谢作者的分享精神,原文地址:http://www.nginx.cn/591.html nginx配置入门 之前的nginx配置是对nginx配置文件的具体含义进行讲解,不过对于nginx的新手可能一 ...
- nginx 配置入门
之前的nginx配置是对nginx配置文件的具体含义进行讲解,不过对于nginx的新手可能一头雾水. 今天看到个文档不错,翻译过来分享给大家,可以让新手更详细地了解nginx配置,可以说是nginx配 ...
- Redis入门指南之二(安装及配置)
本节主要内容 1. 前言2. redis安装3. 启动和停止Redis 1. 前言 安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么red ...
- 干货|给小白的 Nginx 10分钟入门指南
一个执着于技术的公众号 前言 今天主要对Nginx Web服务软件进行介绍,作为HTTP服务软件的后起之秀,Nginx与它的老大哥Apache相比有很多改进之处,比如,在性能上,Nginx占用的系统资 ...
- nginx入门篇----nginx服务器基础配置
1.nginx.conf文件结构... #全局块 events{ ... } http #http块{ ...
- 使用SSL配置Nginx反向代理的简单指南
反向代理是一个服务器,它接收通过Web发出的请求,即http和https,然后将它们发送到后端服务器(或服务器).后端服务器可以是单个或一组应用服务器,如Tomcat,wildfly或Jenkins等 ...
随机推荐
- 201671030111 李蓉 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程,反思总结课程学习内容. 任务一:结合本学期课程学习 ...
- php怎么实现多态?
在PHP5中,变量的类型是不确定的,一个变量可以指向任何类型的数值.字符串.对象.资源等.我们无法说PHP5中多态的是变量. 我们只能说在PHP5中,多态应用在方法参数的类型提示位置. 一个类的任何子 ...
- python应用-解决现实应用题
公鸡5元1只,母鸡3元1只,小鸡一元3只,100元买100只鸡,三种鸡各多少只 x+y+z=100 5*x+3*y+z//3=100 z%3==0 穷举法-穷尽所有的可能性找到真正的答案 for x ...
- jsp request对象
getParameter( ) :返回name指定参数的参数值 String[] getParameterValues(String name) :返回包含参数name的所有值的数值 getA ...
- ES6学习笔记--Object.is()
ES5比较两个值是否相等, 相等运算符(==)和恒等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0. javascript缺乏一种运算,在所有环境中, ...
- FitNesseRoot/ErrorLogs目录下可查看fitnesse输出日志
调试fitnesse用例时,通过测试页面的输出信息不是很好定位问题出在哪里 这时可以在写代码过程中,增加一些输出信息,比如说java的话,可以用log4j.注意要把日志输出弄成utf-8编码,不然会中 ...
- 常用方法 DataTable转换为Entitys
备注:摘自网上 有附地址 public static List<T> DataTableToEntities<T>(this DataTable dt) where T : c ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- Android编程权威指南笔记
学习android开发,你需要对java语言,包括类,对象,接口,监听器,包,内部类,匿名内部类有所了解. android studio 的下载与安装 可以从android开发者网站下载android ...
- X-factor Chain(信息学奥赛一本通 1628)
题目描述 输入正整数 x,求 x 的大于 1 的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及满足最大长度的序列的个数. 输入 多组数据,每组数据一行,包含一个正整数 x. 对于全部数据 ...