Django uwsgi nginx 应用部署

Django+uwsgi+nginx 搭建web应用是一种常见的模式,此文档主要记录如何操作。

参考文档:Setting up Django and your web server with uWSGI and nginx

代码地址:https://github.com/xander-ye/my_website.git

部署环境:CentOS 


步骤:


1.安装uwsgi和nginx

pip install uwsgi

yum install nginx

2. nginx相关设置

安装好的nginx需要简单的修改配置。/etc/nginx/nginx.conf 中有两个地方:

一是,nginx一般默认安装后,其用户为 user  nginx,我们需要修改为 user root;

二是,在include 地方在添加一条记录,include /etc/nginx/sites-enabled/*;这样的话待会我们项目的nginx配置直接链接到此文件夹下面即可。

3.在项目中创建三个配置文件

uwsgi_params文件直接拷贝教程里面的就好,nginx/uwsgi根据自己的情况修改。

创建链接,将应用的nginx配置链接到sites-enabled目录

ln -s /root/my_website_server/my_website/mysite/mysite_nginx.conf  /ect/nginx/sites-enable/

重启nginx

4.运行试试看

cd  到mysite_uwsgi.ini文件所在的文件夹,运行 uwsgi --ini mysite_uwsgi.ini

It works!

浏览器访问正常!

补充

这样运行的话等我们关闭窗口程序便立刻终止,而且日志输出到终端也不妥。

针对这两点我们可以使用Linux的nohup命令和输出重定向功能

在我们执行的命令前加上nohup,那么将要执行的命令便会在后台运行。

输出重定向

正确输出 覆盖 :命令>文件

正确输出 追加:命令>>文件

错误命令 2> 文件

错误命令 2> 文件

正确输出和错误输出都覆盖到文件:命令&> 文件

追加:命令&>>文件

正确输出追加到文件1,错误输出追加到文件2:

命令>>文件1  2>>文件2

我们的运行命令变成:

nohup uwsgi --ini mysite_uwsgi.ini > /root/my_website_server/mysite.log

脚本化

在root目录下面创建一个文件夹bin,在bin下面创建文件start_mysite

添加可执行权限:chmod 755 start_mysite

如果直接在终端输入命令,结果定是command not found.

输入 准确的命令路径即可    . /start_mysite

为了让命令直接输入也可运行,需要再进行一些操作,如下:

需要了解的知识:

Linux环境变量PATH,实际上就是记录的一个字符串,当你在终端输入命令的时候,Linux会去查找PATH里面记录的路径,依次搜索里面所记录的文件目录下是否包含我们输入的命令,如果能搜到就运行,否则就是我们常见的提示:command not found

所以我们要做的就是把我们刚刚创建的bin目录添加到PATH中。

问题又来了,如何添加呢?

在用户登录Linux的时候,它是有配置文件需要去读取的:

/etc/profile   这是系统配置文件,不建议修改;

~/.bash_profile  或者 ~/bash_login 还有 ~/.proflie 这三个才是用户配置文件,当用户登录的时候,依次读取。一旦读取到前面任何一个文件便终止后面文件的读取。

所以,我们在~/.bash_profile中修改即可。

export 的作用是将PATH设定为全局变量。

文档保存之后还不行,因为我们刚刚提到,此文档只会在用户登录的时候才会去读取,我们刚刚进行的操作事实上还未生效,登出再登入?当然可以,更方便的是,我们也可以使用命令让修改立即生效:

source ~/.bash_profile

至此,你已经可以直接运行start_mysite来启动应用了。


有可能遇到的问题


uwsgi invalid request block size: 21327 (max 4096)...skip

You just need to increase the buffer size in uWSGI settings.

buffer-size=32768


跨域:https://github.com/ottoyiu/django-cors-headers#configuration

pip install django-cors-headers

INSTALLED_APPS=(

...

'corsheaders',

...

)

MIDDLEWARE=[#Or MIDDLEWARE_CLASSES on Django < 1.10

...

'corsheaders.middleware.CorsMiddleware',

'django.middleware.common.CommonMiddleware',

...

]

CORS_ORIGIN_ALLOW_ALL=True

这是直接修改Django让应用允许跨域,另外还有一个方法是修改nginx配置,让nginx传过来的请求在Django看来似乎并没有跨域。


执行:uwsgi --socket mysite.sock --wsgi-filetest.py出现错误:

(13: Permission denied)nginx error log(/var/log/nginx/error.log)

查看nginx配置:  /etc/nginx/nginx.conf

其中的 user 多半是 nobody  ,或者是nginx ,改成 root

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容