阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 16.04下安装部署 Nginx+uWSGI+Django1.9.7

137次阅读
没有评论

共计 2391 个字符,预计需要花费 6 分钟才能阅读完成。

由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好 Nginx+uWSGI+Django1.9.7 在 Ubuntu 16.04 下的部署,接下来就详细写写步骤以及其中遇到的问题。前提是安装有虚拟环境 pyenv+virtualenv。

一、安装 uwsgi

1. 在虚拟环境下安装 uwsgi

1 # 启动环境
2 pyenv activate your_env_name
3 pip install uwsgi

2. 测试 uwsgi,创建 test.py

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello uwsgi!"]

3. uwsgi 运行该文件

    当时用的命令:uwsgi –http:8088 –wsgi-file test.py, 终端提示没有 –wsgi-file 选项,一直不成功,后来改用 –http-socket 可以了。但是现在试了 –http 竟然也可以运行了,竟然不知道当初为什么不行。

uwsgi --http-socket  :8088   --wsgi-file   test.py

Ubuntu 16.04 下安装部署 Nginx+uWSGI+Django1.9.7

二、安装 nginx

1.nginx 不需要在虚拟环境下装,在终端直接用命令安装

  sudo apt-get install nginx

2.nginx 启动与关闭命令

cln@Aspire:~$ service nginx start     #启动
cln@Aspire:~$ service nginx stop     #关闭
cln@Aspire:~$ service nginx restart    #重启 
cln@Aspire:~$ nginx -V      #查看 nginx 版本
nginx version: nginx/1.10.0 (Ubuntu)
built with OpenSSL 1.0.2g-fips  1 Mar 2016
TLS SNI support enabled

3. 修改 nginx 默认端口

nginx1.10.0 版本 配置文件有 /etc/nginxnginx.conf, /etc/nginx/conf.d/* 和 /etc/nginx/sites-available 下的 default,nginx.conf 包含 default、conf.d 里的配置,端口号在 default 文件里修改。

打开 nginx 文件夹下 default 文件,修改其端口号为 88,如下,端口已改好

cln@Aspire:~$ sudo gedit /etc/nginx/sites-available/default 

Ubuntu 16.04 下安装部署 Nginx+uWSGI+Django1.9.7

4. 重启 nginx 服务,访问 http://127.0.0.1:8088, 会打开 nginx 欢迎 welcome 页面。

三、部署 django+uwsgi+nginx

1. 在你的 django 项目文件夹下建立 yourProjectName_uwsgi.ini 文件,具体的参数配置如下:最重要的是配置 Pythonpath,它指定 django 所在的位置,当时没有配置准确这一点,一直报错 no moudle  django,花了很长时间也不知道为什么,后来查了很多资料后,才知道配置 pythonpath。主要的参数有注释。

Ubuntu 16.04 下安装部署 Nginx+uWSGI+Django1.9.7

当时 socket = :8088, 我写的是 http-socket =:8088,  一直报错 502  Bad Gateway,花了很长时间后才知道把这句改成 socket。

2. 之前提到 nginx.conf 配置所包含的配置,那就可以在 /etc/nginx/conf.d 下建一个 nginx.conf 来关联 uwsgi

cln@Aspire:~$ sudo vi /etc/nginx/conf.d/nginx.conf

     在里面添加如下内容:

Ubuntu 16.04 下安装部署 Nginx+uWSGI+Django1.9.7

3. 重启 nginx 服务,激活虚拟环境,运行.ini 文件

# 激活虚拟环境
cln@Aspire:~/PycharmProjects/webapp$ pyenv activate webenv 
# 在.ini 文件的父目录下运行命令
(webenv) cln@Aspire:~/PycharmProjects/webapp$ uwsgi --ini web_uwsgi.ini 

     如下所示,表示成功。

Ubuntu 16.04 下安装部署 Nginx+uWSGI+Django1.9.7

访问 http://127.0.0.1:88, 便可以通过 nginx 访问到你的 django 项目的网站。

总结:一点粗心大意,就会让你花费很多时间去找问题所在,现在我写下自己遇到的问题以及解决方法,希望能帮助遇到类似问题的你。

 更多参考

Nginx+uWSGI+Supervisor 在 Ubuntu 上部署 Flask 应用  http://www.linuxidc.com/Linux/2016-07/133064.htm

Ubuntu Server 12.04 安装 Nginx+uWSGI+Django 环境 http://www.linuxidc.com/Linux/2012-05/60639.htm 

Django+Nginx+uWSGI 部署 http://www.linuxidc.com/Linux/2013-02/79862.htm 

Nginx+uWSGI+Django+Python 应用架构部署  http://www.linuxidc.com/Linux/2015-10/124183.htm

Ubuntu Server 14.04.2 LTS 配置 Nginx + Uwsgi + Django  http://www.linuxidc.com/Linux/2015-04/116397.htm

Flask+uWSGI+Nginx+Ubuntu 部署教程 http://www.linuxidc.com/Linux/2016-06/132690.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-07/133484.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2391字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中