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等 ...
随机推荐
- 15、Python面向对象基础
和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制. Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法 ...
- APP——Ruby开源分发平台搭建
前言 蒲公英,维护后把我上传的包清除了,所以想自己搭建一个用下. 步骤 项目用ruby语言写的,部署起来也很简单支持源码和Docker部署 GitHub | https://github.com/pl ...
- scanner=new Scanner(System.in); int i=scanner.nextInt();
import java.util.Scanner; public class TryScanner { /** * @param args */ public static void main(Str ...
- 最小球覆盖——模拟退火&&三分套三分套三分
题目 给出 $N(1 \leq N \leq 100)$ 个点的坐标 $x_i,y_i,z_i$($-100000 \leq x_i,y_i,z_i \leq 100000$),求包围全部点的最小的球 ...
- python - 将天数转换成日期
# 如果是 0 则为今天 def getdate(day): today = datetime.datetime.now() deviation = datetime.timedelta(days=- ...
- 对ABBYY FineReader功能的探究
ABBYY FineReader,一个强大的PDF阅读器和OCR识别器! 阅读主界面 OCR主界面 资源就不贴了,不过提示一下大家:Google Search 懒 得 勤 快,就可以找到. 经过研究, ...
- Mysql配置C3P0
需要导入的包 c3p0-0.9.5.2.jar mchange-commons-0.2.15.jar mysql-connector.jar 1. 配置xml 创建c3p0-config.xml文件, ...
- Python 装饰器(Decorators) 超详细分类实例
Python装饰器分类 Python 装饰器函数: 是指装饰器本身是函数风格的实现; 函数装饰器: 是指被装饰的目标对象是函数;(目标对象); 装饰器类 : 是指装饰器本身是类风格的实现; 类 ...
- 59: loj #10215
$des$ https://loj.ac/problem/10215 $sol$ exgcd检查 $code$ #include <iostream> #include <cstdl ...
- 关于kmp算法
字符串匹配算法简称kmp 日常安利大佬博客(真的是一篇很好的文章) 觉得百度百科讲的也挺好 就是给出两个字符串a, b 求b在a中的所有位置 next数组:代表当前字符之前的字符串中,有多大长度的相同 ...