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等 ...
随机推荐
- JPA(java持久化API)的环境的搭建
因为我使用的是java工程 所以需要引入的依赖有: <properties> <project.build.sourceEncoding>UTF-8</project.b ...
- Sitemap Error : XML declaration allowed only at the start of the document解决方法
今天ytkah的客户反馈说他的xml网站地图有问题,提示Sitemap Error : XML declaration allowed only at the start of the documen ...
- 别名alias永久生效别名alias永久生效;虚拟机的NAT模式,进行静态IP配置,并A、B的实现免密访问
别名alias永久生效 1.打开cd /etc/profile.d 目录 新建文件my_alias.sh 2.my_alias.sh里面添加 alias p=’poweroff -h’ alias r ...
- 一个Java字符串中到底有多少个字符?
依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 \u0000 (0),最大值是\uffff(65535), 也就是一个字符以2个字节来表示,难道Java最多只能表示 ...
- LeetCode 981. Time Based Key-Value Store
原题链接在这里:https://leetcode.com/problems/time-based-key-value-store/ 题目: Create a timebased key-value s ...
- springboot与ssm的差异性
springboot简化了ssm的配置 将外部jar包改为内部pom.xml文件配置 同时 使用了多种注解来进行注解式的开发 [图1:springboot的一些依赖模块] 通过原springmvc机制 ...
- CCF 201803-3 URL映射
CCF 201803-3 URL映射 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django. ...
- dajngo控制台添加数据报错Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured.
报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but set ...
- Windows(win2016、win2019、win10)在IIS下添加.NET Framework 3.5 NetFx3 失败 (状态为:0x800f0950)的解决办法
今天一个客户自己的电脑安装了一个windows server 2016 想装一个IIS,程序一个C+写的ERP,NET是必然,NET4.7可以安装了,但就是3.5,如何也装不上,错误(状态为:0x80 ...
- <每日 1 OJ> -内存文件系统
蛮有意思的,主要考查链表和树结构的知识. 代码如下: ************************************************************************* ...