nginx(发音"engine x")是俄罗斯软件工程师Igor Sysoev开发的免费开源web服务器软件。nginx于2004年发布,聚焦于高性能,高并发和低内存消耗问题。而且具备多种web服务器功能特性:负载均衡,缓存,访问控制,带宽控制,以及高效整合各类应用的能力,这些特性使nginx很适合于现代网站架构。目前,nginx已是互联网上第二流行的开源web服务器软件。html
三大服务器对好比图所示:nginx
整体来讲,nginx服务器将会是从此web server的主流服务器。web
在讲解nginx配置文件参数前,让咱们先来了解一下nginx的启停操做吧。在Linux平台下,控制nginx服务的启停可不止有一种方法。
在nginx服务器运行时,会保持着一个主进程和多个work process工做进程,如图所示:正则表达式
咱们经过给主进程发送信号就能够控制服务的启停了,那么如何给主进程发送信号呢,首先须要知道主进程号的PID,获取PID有两种途径,经过ps命令就能够看到主进程号PID了,图中的8029就是PID;也能够经过nginx安装目录下log中的nginx.pid, Mac下在/usr/local/var/run/nginx.pid中,如图所示:django
一、nginx可接收的符号有
TERM 或 INT——快速中止nginx服务
QUIT——平缓中止nginx服务
HUP——使用新的配置文件启动进程,以后平缓中止原有进程,又叫平滑重启
USER1——从新打开日志,经常使用于日志切割
USER2——使用新版本nginx,又叫平滑升级
WINCH——平缓中止work process,用于nginx服务器平滑升级缓存
二、nginx启动参数:
-c:配置文件
-t:检查语法错误
-p:更改安装路径
-q:只显示错误信息服务器
三、nginx中止操做:网络
nginx -g TERM|INT|QUIT
或者架构
kill -9 | SIGKILL `~/log/nginx.pid`
重启nginx:并发
nginx -g HUP [-c newconfigure]
四、升级nginx:
更改新安装路径
nginx -p newInstallPath
平滑升级
nginx -g USER2
平滑中止旧服务
nginx -g WINCH
众所周知,默认的nginx配置文件都存放在安装目录的conf中,主配置文件名为nginx.conf,接下来咱们会详细介绍内部的相关参数。
先看下面的配置项:
worker_processes 1; #全局有效 events { worker_connections 1024; #events部分有效 } http { include mime.types; #http部分有效 default_type applicaiotion/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; #http的server部分有效 location / { #http/server的location部分有效 root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
由上段代码能够看出,nginx.conf由三部分组成,全局块、events块和http块。每一个http块又由http全局块、多个server块构成。而每一个server块又包含多个server块和多个location块。
在讲解配置项以前,让咱们先了解一下各个块的做用。
一、全局块:主要影响nginx服务器总体运行的配置指令,一般的配置有nginx用户(组),work process数,进程、日志文件存放路径以及配置文件引入等等。
二、events块:主要影响nginx服务器与用户的网络链接,一般的配置有开启对多work process下的网络链接进行序列化,是否容许同时接收多个网络链接,每一个work process同时支持的最大链接数等等。
三、http块:nginx配置核心部分,代理、缓存和日志定义都放在这个模块中,一般的配置有文件引入,mime-type定义,链接超时时间等等。
四、server块:至关于一台虚拟主机,一般的配置是虚拟主机的监听配置、名称和IP配置。
五、location块:至关于server的一个指令,主要做用是基于nginx服务器接收到的请求字符串进行匹配,对特定请求进行处理,一般的配置有地址定向、数据缓存和应答控制等等。
经常使用配置详解:
listen 192.168.1.10:8000; #监听具体的ip和端口链接 listen 192.168.1.10; #监听具体ip的全部端口链接 listen 8000; #监听具体端口的全部IP链接,等同于listen *:8000
“=” 用于严格匹配 “~” 用于区分大小写的正则表达式匹配 “~*” 用于不区分大小写的正则表达式匹配 “^*” 用于匹配度最高的location匹配
前提:已安装django框架、nginx和uwsgi相关服务。
nginx相关配置以下:
uwsgi.py配置以下:
执行:uwsgi --ini=uwsgi.ini
http://blog.csdn.net/hanhuili...
http://hai0378.iteye.com/blog...
http://blog.csdn.net/tjcyjd/a...
nginx高性能web服务器详解(p22-p47)
http://www.runoob.com/django/...