资讯专栏INFORMATION COLUMN

nginx配置参数详解及django框架下的nginx和uwsgi的搭建

snowLu / 1333人阅读

摘要:于年发布,聚焦于高性能,高并发和低内存消耗问题。二服务的启停控制在讲解配置文件参数前,让我们先来了解一下的启停操作吧。在讲解配置项之前,让我们先了解一下各个块的作用。配置最大连接数设置允许每个同时开启的最大连接数,默认值。

一、nginx简介、

  nginx(发音"engine x")是俄罗斯软件工程师Igor Sysoev开发的免费开源web服务器软件。nginx于2004年发布,聚焦于高性能,高并发和低内存消耗问题。并且具有多种web服务器功能特性:负载均衡,缓存,访问控制,带宽控制,以及高效整合各种应用的能力,这些特性使nginx很适合于现代网站架构。目前,nginx已经是互联网上第二流行的开源web服务器软件。

  三大服务器对比如图所示:

  总体来说,nginx服务器将会是今后web server的主流服务器。

二、nginx服务的启停控制

  在讲解nginx配置文件参数前,让我们先来了解一下nginx的启停操作吧。在Linux平台下,控制nginx服务的启停可不止有一种方法。
  在nginx服务器运行时,会保持着一个主进程和多个work process工作进程,如图所示:

  我们通过给主进程发送信号就可以控制服务的启停了,那么如何给主进程发送信号呢,首先需要知道主进程号的PID,获取PID有两种途径,通过ps命令就可以看到主进程号PID了,图中的8029就是PID;也可以通过nginx安装目录下log中的nginx.pid, Mac下在/usr/local/var/run/nginx.pid中,如图所示:

1、nginx可接收的符号有
TERM 或 INT——快速停止nginx服务
QUIT——平缓停止nginx服务
HUP——使用新的配置文件启动进程,之后平缓停止原有进程,又叫平滑重启
USER1——重新打开日志,常用于日志切割
USER2——使用新版本nginx,又叫平滑升级
WINCH——平缓停止work process,用于nginx服务器平滑升级

2、nginx启动参数:
-c:配置文件
-t:检查语法错误
-p:更改安装路径
-q:只显示错误信息

3、nginx停止操作:

nginx -g TERM|INT|QUIT

或者

kill -9 | SIGKILL `~/log/nginx.pid`

重启nginx:

nginx -g HUP [-c newconfigure]

4、升级nginx:
更改新安装路径

nginx -p newInstallPath

平滑升级

nginx -g USER2

平滑停止旧服务

nginx -g WINCH
三、nginx配置参数详解

  众所周知,默认的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块。
  在讲解配置项之前,让我们先了解一下各个块的作用。
1、全局块:主要影响nginx服务器整体运行的配置指令,通常的配置有nginx用户(组),work process数,进程、日志文件存放路径以及配置文件引入等等。
2、events块:主要影响nginx服务器与用户的网络连接,通常的配置有开启对多work process下的网络连接进行序列化,是否允许同时接收多个网络连接,每个work process同时支持的最大连接数等等。
3、http块:nginx配置核心部分,代理、缓存和日志定义都放在这个模块中,通常的配置有文件引入,mime-type定义,连接超时时间等等。
4、server块:相当于一台虚拟主机,通常的配置是虚拟主机的监听配置、名称和IP配置。
5、location块:相当于server的一个指令,主要作用是基于nginx服务器接收到的请求字符串进行匹配,对特定请求进行处理,通常的配置有地址定向、数据缓存和应答控制等等。

常用配置详解:

配置work process数:nginx服务器实现并发处理服务的关键,默认为1

配置文件引入:include file; 可引入其他nginx配置或第三方配置到主配置文件中,支持相对路径,引入的文件需要读写权限。

配置最大连接数:work_connections设置允许每个work process同时开启的最大连接数,默认值512。

配置连接超时时间:keepalive_timeout 默认75s。

配置网络监听:listen 可监听ip、端口和socket

listen 192.168.1.10:8000; #监听具体的ip和端口连接
listen 192.168.1.10; #监听具体ip的所有端口连接
listen 8000; #监听具体端口的所有IP连接,等同于listen *:8000

配置虚拟主机名称:server_name 是指server块对外提供的虚拟主机,设置好主机的名称和配置好DNS,就可以发送请求了。

配置location块:匹配相关字符串

“=” 用于严格匹配
“~” 用于区分大小写的正则表达式匹配
“~*” 用于不区分大小写的正则表达式匹配
“^*” 用于匹配度最高的location匹配

配置网站默认首页:index file; file可以为多个文件名,依次进行匹配,默认为index.html

四、django框架下nginx和uwsgi搭建

前提:已安装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/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39686.html

相关文章

  • uwsgi+nginx项目部署

    摘要:部署项目部署一个的开源框架。轮询负载均衡在配置文件中添加如下配置,此配置有三台服务器提供支付服务。缺省配置就是轮询策略负载均衡支持和协议,只需要修改后面的协议即可支持的负载均衡只需将改为即可。 部署Django项目 Django+uWSGI+nginx 部署 django 一个pyhton的开源web框架。 uWSGI 一个基于自有的uwsgi协议、WSGI协议和http服务协议的w...

    betacat 评论0 收藏0
  • 如何一步步在生产环境上部署djangovue

    摘要:默认情况下,它是。它也是一个安全度量,所以调整为你的应用需要,而不是最大输出。在运行的时候会把中的静态文件拷贝到这个目录中达到从开发环境到生产环节过程中移植静态文件的作用。 本文由云+社区发表本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR----表示dj...

    wendux 评论0 收藏0
  • 如何一步步在生产环境上部署djangovue

    摘要:默认情况下,它是。它也是一个安全度量,所以调整为你的应用需要,而不是最大输出。在运行的时候会把中的静态文件拷贝到这个目录中达到从开发环境到生产环节过程中移植静态文件的作用。 本文由云+社区发表本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR----表示dj...

    weknow619 评论0 收藏0
  • Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    摘要:百度不行就用吧,中文不行就找英文的,最后,给我误打误撞的部署成功了。准备工作我使用的系统是版,官网下载地址安装的时候全部选择英文,记得以前选择中文的时候安装时出了问题,服务器组件一个不选,安装做的很贴心,基本上是一路回车,就不详细说明了。 Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 前不久为了部署Django项目,在百度上到处找教程,找...

    tracymac7 评论0 收藏0
  • Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    摘要:百度不行就用吧,中文不行就找英文的,最后,给我误打误撞的部署成功了。准备工作我使用的系统是版,官网下载地址安装的时候全部选择英文,记得以前选择中文的时候安装时出了问题,服务器组件一个不选,安装做的很贴心,基本上是一路回车,就不详细说明了。 Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 前不久为了部署Django项目,在百度上到处找教程,找...

    pingan8787 评论0 收藏0

发表评论

0条评论

snowLu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<