nginx使用指南
1。执行nginx
能够执行nginx命令开启nginx:
nginx
假设nginx已经开启了,能够执行nginx命令加-s 參数来控制nginx的执行
nginx -s signal
signal的值:
stop— 高速关闭quit— 优雅的关闭reload— 又一次载入配置文件reopen— 又一次打开日志文件
比如:要等nginx处理完当前的请求后关闭nginx能够用以下的命令
nginx -s quit
改动了配置文件后须要执行以下的命令
nginx -s reload
2,简单配置nginx
打开配置文件。一般在/etc/nginx/nginx.cnf中。按照自己安装參数而定。
nginx.conf 中已经包括了一个server块的配置案例,只是是凝视掉的。以下是一个server块的基本配置
http {
server {
}
}
server块以下能够配置一些location来指定请求url相应的本地资源
location / {
root /data/www;
}
上面表示全部的/ 以下的訪问资源都在/data/www 目录以下
location /images/ {
root /data;
}
这个表示全部/images/路径訪问的图片都在/data以下
那么上面的统一配置就是
server {
listen 8080;
location / { root /data/www; }
location /images/ { root /data; }
}
假设我訪问http://localhost/images/example.png的话。nginx就会返回文件文件夹中/data/images/以下的example.png图片返回给client
假设我訪问的话,nginx就会返回文件文件夹中/data/www/以下的example.html图片返回给clienthttp://localhost/some/example.html
listen能够不指定。默认是8080
假设在执行期间改动了配置执行
nginx -s reload
假设配置验证通,但没有依照约定訪问到指定的文件能够查看/usr/local/nginx/logs 或/var/log/nginx以下的日志文件access.log和error.log
3,配置反向代理
server {
location / {
proxy_pass http://localhost:8080;
}
location /images/ {
root /data;
}
}
proxy_pass指定反向代理的路径,全部符合/的路径都会到http://localhost:8080中获取资源
如:http://192.168.1.100/some/example.html 訪问的资源 事实上是 获取的资源,这些对client是透明的。http://localhost/some/example.html
4,主机名
服务器名称通过server_name指令指定,它决定哪个server来处理哪个请求.server_name 能够通过通配符,正则指定。
server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name *.example.org;
...
}
server {
listen 80;
server_name mail.*;
...
}
server {
listen 80;
server_name ~^(?<user>.+)\.example\.net$;
...
}
当一个请求同一时候满足多个主机名的时候优先选择的主机名有例如以下顺序。
1,全名称。准确的名称。
2。最长的通过*开头的通配符名称“*.example.org”
3,最长的通过*结尾的通配符名称“mail.*”
4,第一个匹配正則表達式的虚拟主机名
通配符仅仅能在主机名的開始和结束使用,“www.*.example.org”和“w*.example.org” 都是错误的写法,假设须要匹配这样的模式能够通过正則表達式指定,如“~^www\..+\.example\.org$” and“~^w.*\.example\.org$”。
星号代理主机名的一部分“*.example.org”不仅代表www.example.com还代表www.sub.example.com。.example.org既能够代表example.org也能够代表*.example.org。
假设要使用正則表達式。主机名必须以波浪符~開始
server_name ~^www\d+\.example\.net$;
假设不是以波浪符号~还是,那么它被觉得是一个全主机名。
假设正則表達式主机名中包括*,那么它被觉得是一个通配符主机名。^和$是必需的。他们是语法和逻辑上的要求。
通过正则捕获能够再后面的变量中引用
server {
server_name ~^(www\.)?
(?
<domain>.+)$;
location / {
root /sites/$domain;
}
}
正则表达捕获能够支持例如以下的语法
?
|
Perl 5.10 compatible syntax, supported since PCRE-7.0 |
?' |
Perl 5.10 compatible syntax, supported since PCRE-7.0 |
?P< |
Python compatible syntax, supported since PCRE-4.0 |
正则捕获也能够通过数字參数获取
server {
server_name ~^(www\.)?
(.+)$;
location / {
root /sites/$2;
}
}
$2匹配第二个括号里的正則表達式匹配的内容。
混合主机名
server {
listen 80;
server_name example.org www.example.org "";
...
}
假设nginx没有能够匹配请求的url主机名的server模块,则默认返回空的主机名来响应请求。
假设用户通过ip訪问,这server_name能够配置ip主机名来响应请求
server {
listen 80;
server_name example.org
www.example.org
""
192.168.1.1
;
...
}
-表示的主机名代表了全部错误的主机名
server {
listen 80 default_server;
server_name _;
return 444;
}
在有些时候你可能会訪问*.example.com 但当中包好 www.example.com和example.com 且这两个訪问跟频繁,最好配置成这样
server {
listen 80;
server_name example.org www.example.org *.example.org;
...
}
而不要是这样
server {
listen 80;
server_name .example.org;
...
}
假设主机名过长须要在http模块中改动參数
server_names_hash_bucket_size
这个參数的值能够使32或64,取决于你的cpu缓存栈的大小
假设你将他设为32,但你的服务器名称非常长如:too.long.server.name.example.org。那么它会报错
could not build the server_names_hash,
you should increase server_names_hash_bucket_size: 32
你必需要把它的參数设成两倍
http {
server_names_hash_bucket_size 64;
...
假设配置的主机名过多就会报这个错
could not build the server_names_hash,
you should increase either server_names_hash_max_size: 512
or server_names_hash_bucket_size: 32
解决方法是尽可能地将server_names_hash_max_size设置的和主机名的个数一样,假设这个配置起不了做用,或配置后导致nginx的启动时间过长的话,就添加server_names_hash_bucket_size的值
nginx使用指南的更多相关文章
- Nginx重写规则指南 转
http://www.ttlsa.com/nginx/nginx-rewriting-rules-guide/ Nginx重写规则指南 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你, ...
- 【翻译】nginx初学者指南
nginx初学者指南 本文翻译自nginx官方网站:http://nginx.org/en/docs/beginners_guide.html#control 该指南会对nginx做一个简要的介绍,同 ...
- Nginx优化指南
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...
- Nginx优化指南+LINUX内核优化+linux连接数优化+nginx连接数优化
Most setup guides for Nginx tell you the basics - apt-get a package, modify a few lines here and the ...
- Nginx初学者指南
Starting, Stopping, and Reloading Configuration To start nginx, run the executable file. Once nginx ...
- [Linux] nginx管理员指南基本功能
1.运行时控制Nginx进程 NGINX有一个主进程和一个或多个工作进程. 如果启用了缓存,则缓存加载器和缓存管理器进程也会在启动时运行. 主进程的主要目的是读取和评估配置文件,以及维护工作进程. 工 ...
- nginx配置指南
nginx(读作engine x)是一款设计优秀的Http服务器, 其占用内存少, 负载能力强且稳定性高, 正在被越来越多的用户所采用. nginx可以为HTTP, HTTPS, SMTP, POP3 ...
- 转:nginx入门指南,快速搭建静态文件服务器和代理服务器
本文介绍 Nginx 入门基础知识,让你迅速搭建 Nginx 服务器.主要内容包括 Nginx 安装和简单使用.Nginx的简单原理.Nginx 配置文件的结构.如何使用 Nginx 来提供静态文件服 ...
- Nginx 重写规则指南1
作者:运维生存时间 - 默北 链接:www.ttlsa.com/nginx/nginx-rewriting-rules-guide/ 当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你,你 ...
随机推荐
- python学习笔记--python编程基础
一.一个隆重的仪式 我们在学习语言的时候,第一个写的程序肯定都是hello world.来写第一个程序吧,其实很简单,python的语法就是简单.优雅,一个print就搞定. 1 print('hel ...
- 性能学习之六---socket接口测试
socket协议较底层,所以是一个万能协议.socket发的是数据包,所以较难看懂. 下面我们来讲解socket接口测试. 大致思路为:新建sever端和client端---建立连接---发送数据 一 ...
- 【Luogu】P3806点分治模板(点分治)
题目链接 wc听不懂lca讲的高等数学专场(一个字都听不懂),然后就自学了点分治. 点分治就是我先处理完跟根有关的东西,然后把根标记掉,把原树拆成若干个联通块,然后分别对每个联通块(每个小树)搞一模一 ...
- kmp-模板-hd-1711
p数组记录的是当该位置上失配的时候,跳到第几个进行继续匹配: /* 题意:给两个数串,求模板串第一此出现在源串中的位置,开头的位置:没有输出-1: 算法:kmp 先对字符串进行自匹配: 然后串间匹配: ...
- hihoCoder #1157 建造金字塔
这道题我想了一天才想清楚做法.AC 了之后去看别人写的题解,都是三言两语意识流式描述,我并不能读懂.我觉得很自卑,为何人家解这道题如此轻松.不过,我还是决定把我的解法写下来,并且一定要写清楚. 思路 ...
- HDU——2087剪花布条
剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 算法复习——状压dp
状压dp的核心在于,当我们不能通过表现单一的对象的状态来达到dp的最优子结构和无后效性原则时,我们可能保存多个元素的有关信息··这时候利用2进制的01来表示每个元素相关状态并将其压缩成2进制数就可以达 ...
- for循环创建对象
有时候奇怪的发现往list添加数据的时候,一直被最后一个元素覆盖,首先 ,我们得明白原理: 在new 一个对象的时候,对象的ID是唯一确定的:将对象add入list中时,放入list中的其实是对象的引 ...
- 转 C语言编译过程简介
C语言编译过程简介 C语言编译过程简介 刚开始接触编程的时候,只知道照书敲敲代码,一直都不知道为什么在windows平台下代码经过鼠标那样点击几下,程序的结果就会在那个黑色的屏幕上.现在找了个机会将C ...
- ORCLE数据库用户、权限、角色管理
PS:中括号表示可选项. ORACLE 用户管理 1.创建用户 CREATE USER username --用户名 IDENTIFIED BY password --密码 [ACCOUNT LO ...