django+uwsgi+nginx部署教程

由于最近搭网站搭的很是火热,所以中间的一些学习就暂时搁置了,本地网站已经部署好了,为了更好的测试已经完成的部分,准备把网站放到服务器上,选择了比较通用的django+uwsgi+nginx部署方式,以此记录学习过程,如有不足或者错误,请小伙伴指出。

一.占领地
因为一个服务器不可能是自己一个人在用,所以为了避免安装环境以及软件和软件依赖之间的干扰,我们要搭建一个属于自己的环境
1.安装anaconda3
(1)下载安装
官网下载对应版本
https://www.anaconda.com/distribution/
(2)bash Anaconda3-2019.03-Linux-x86_64-1.sh(我下载的是这个版本)
(3)按照提示输入,一般都是yes
(4)输入python或者conda -V 检测是否安装成功
2.搭建环境
(1)conda env list
我们可以看到只有一个root 环境
(2)conda create -n conda3_env(我的环境名字叫做conda3_env)
(3)conda env list
我们就可以看见自己创建的环境了
(4)source activate conda3_env
激活虚拟环境 conda3_env(关闭终端后都要重新激活),这样我们就进入了虚拟环境中
注意:退出虚拟环境 deactivate
3.安装软件
(1)安装django
conda install django==2.2 (我安装的是最新版django)
(2)查看一下版本
conda list
做到这一步,我们已经占好了领地,接下来就是要盖高楼啦~~

二.盖高楼
盖高楼的第一步就是打地基,所以我们要确定好必需的软件都已经安装完毕
1.创建项目
(1) django-admin.py startproject myproject (也可以用conda命令)
(2) cd myproject
(3) django-admin.py startapp myapp
2.部署
(1)安装nginx(root环境)
apt-get install nginx
(2) 安装uwsgi(自己的环境)
pip install uwsgi
在conda环境下大概率安装不成功,可以使用以下命令代替:
conda install -c conda-forge uwsgi

如果以上基础的软件都已经安装完毕,那么我们就进行相关软件的配置吧~~~

  1. 配置
    (1)测试uwsgi
    在django下面新建test.py (也可以直接测试自己的项目)


    django+uwsgi+nginx部署教程_第1张图片
    图片.png

之后执行命令:
uwsgi --http :8001 --plugin python --wsgi-file test.py
执行成功后在浏览器打开:http://localhost:8001 (或者服务器的IP地址)显示 “ Hello World ”说明uwsgi运行正常。

(2)测试Django 项目
运行如下命令:
python manage.py runserver 0.0.0.0:8006(随便800X都行)
访问http://localhost:8006(或者服务器IP),项目运行正常。
然后链接Django和uwsgi,实现简单的web服务器,到Django项目目录下执行shell:

uwsgi --http :8006 --plugin python --module myproject.wsgi

myproject为你的项目名。访问http://localhost:8006(或者服务器IP),项目正常。注意这时项目的静态文件是不会被加载的,需要用nginx做静态文件代理。

(3)配置uwsgi
首先在项目目录下新建uwsgi.ini


django+uwsgi+nginx部署教程_第2张图片
图片.png

**注意:python的路径要写正确
命令执行:
sudo uwsgi --ini uwsgi.ini
不报错,则成功

(4)配置nginx


django+uwsgi+nginx部署教程_第3张图片
图片.png

命令执行:
sudo ln -s /etc/nginx/sites-enabled/annotator.conf /etc/nginx/sites-available/annotator.conf (建立链接)

不出意外的话,到此配置成功

(5)启动
sudo service nginx start (启动)
sudo service nginx restart(重启)
sudo service nginx stop (停止)

(6)访问 http://localhost(或者服务器IP)/myapp(app名称)

(7)接下来就自己搬砖盖楼吧

***注意:可能会出现端口占用情况,具体问题具体分析,切记遇问题一定要冷静分析,多百度谷歌

参考:
1.http://www.cnblogs.com/jhao/p/6071790.html
2.https://code.ziqiangxuetang.com/django/django-nginx-deploy.html
3.https://blog.csdn.net/u013550998/article/details/81529897
4.https://www.jianshu.com/p/d9fb4e65483c

你可能感兴趣的:(django+uwsgi+nginx部署教程)