我是靠谱客的博主 快乐自行车,最近开发中收集的这篇文章主要介绍Django+uwsgi+nginx+python3部署阿里云ECS,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


1.   部署工具:

Xshell

Navicat for MySql

阿里云EC(操作系统ubuntu16.04

Xftp:(可选,我主要用来看目录结构的)

登录网页版阿里云控制台安全组,开启入8000端口,80,3306,出3306

参考资料:https://zhuanlan.zhihu.com/p/33039984

2.   开始

1. 使用xshell连接阿里云ecs服务器

改名,为了好看而已

root@iZ96cs5sygkesjZ:~# hostname  H
root@iZ96cs5sygkesjZ:~# su

2.       升级系统软件

root@H:~# sudo apt-get update

root@H:~# sudo apt-get upgrade

按提示输个y,等待即可

3.  安装MySql,并配置使其能被远程连接

root@H:~# sudo apt-get install mysql-server mysql-client

中途输入2次数据库密码,用户名是root,直接回车则密码为空

安装完检测

root@H:~# sudo netstat -tap | grep  mysql

登录数据库,输入密码

root@H:~# mysql -u root -p

输入命令

show databases;

表示成功,然后退出来exit;

exit;

安装完mysql改下ip,注释掉这一行

root@H:~# vim  /etc/mysql/mysql.conf.d/mysqld.cnf


保存退出来  :wq

重启mysql

root@H:~# service mysql restart

再进入mysql

授予任意ip(%)用root用户,密码登录更改等权限

mysql> grant all privileges on*.* to '用户名(root)'@'%' identified by '密码' with grant option;

刷新权限

mysql> flush privileges;

这就可以了,测试一下

好了,可以退出数据库了

4.  准备创建虚拟环境

先进要做虚拟目录的根目录,我用的/srv,你们也可选opt,var/www

安装python3-venv

root@H:/srv# apt-get install  python3-venv

安装git,nginx以及python3安装mysqlclient需要安装的依赖包

root@H:/srv# sudo apt-get install  git nginx libmysqlclient-dev python3-dev

5.  创建虚拟环境env

root@H:/srv# python3 -m venv env

进入虚拟环境(启动文件在虚拟目录下bin文件夹叫activate)

root@H:/srv# source env/bin/activate

成功

安装django框架

(env) root@H:/srv# pip install Django

创建项目

(env) root@H:/srv# django-admin.py startproject dolphun

(图中提示我pip可以升级,我就顺便升了下,这个无所谓)

生成requirements.txt文件并安装
 
(env) root@H:/srv# pip freeze > requirements.txt
(env) root@H:/srv# pip install -r requirements.txt

进入项目目录dolphun

数据库转移

(env) root@H:/srv/dolphun# python3  manage.py migrate

测试下安装情况,用所有浏览器访问

(env) root@H:/srv/dolphun# python  manage.py runserver 0.0.0.0:8000

嗯哼,静态文件没刷新,没关系,改一下退出测试Ctrl+C

打开文件加上公网ip

^C(env) root@H:/srv/dolphun# vidolphun/settings.py

保存退出,再测试下,OK了

6.  安装uwsgi

(env) root@H:/srv# pip install uwsgi

测试

^C(env) root@H:/srv# uwsgi --http:8000 --module dolphun.wsgi

7.  配置文件

首先保证自己在项目前目录,也就是/srv下

新建文件夹script并进入

 
^C(env) root@H:/srv# mkdir script(env) 


创建新文件uwsgi.ini

(env) root@H:/srv/script# vi uwsgi.ini

具体内容如下

[uwsgi]

# 项目目录

chdir=/srv/dolphun/

# 启动uwsgi的用户名和用户组

uid=root

gid=root

# 指定项目的application

module=dolphun.wsgi:application

# 指定sock的文件路径

socket=/srv/script/uwsgi.sock

# 启用主进程

master=true

# 进程个数

workers=10

pidfile=/srv/script/uwsgi.pid

# 自动移除unix Socket和pid文件当服务停止的时候

vacuum=true

#环境

virtualenv = /srv/env

# 序列化接受的内容,如果可能的话

thunder-lock=true

# 启用线程

enable-threads=true

# 设置自中断时间

harakiri=30

# 设置缓冲

post-buffering=1028

# 设置日志目录

daemonize=/srv/script/uwsgi.log

写好保存退出

(env) root@H:/srv/script# uwsgi--ini uwsgi.ini

(env) root@H:/srv/script# ps -ef|grep -i uwsgi

8. 添加nginx配置文件

cd /etc/nginx/conf.d/
添加新文件dolphun.conf
(env) root@H:/srv/script# cd /etc/nginx/conf.d/
(env) root@H:/etc/nginx/conf.d# vi dolphun.conf
具体内容如下,更改中文解释的部分
server {

       # 监听 就是你启动的端口

       listen 80;

       # server_name后面跟你的公网ip,域名。然后下面的不管它

       server_name 39.105.37.17 dolphun.cn   www.dolphun.cn;

       charset  utf-8;

       gzip on;

       gzip_types text/plain application/x-javascript text/css text/javascriptapplication/x-httpd-php application/json text/json image/jpeg image/gifimage/png application/octet-stream;

 

       error_page  404           /404.html;

       error_page   500 502 503 504  /50x.html;

       # 指定项目路径uwsgi

       

       location / {

                include uwsgi_params;

                uwsgi_connect_timeout 30;

                # socket路径要与uwsgi的socket路径一致

                uwsgi_passunix:/srv/script/uwsgi.sock;

       }

       # 指定静态文件路径

       location /media  {

                alias  /srv/dolphun/media;

       }

       location /static/ {

                alias  /srv/dolphun/static_all/;

                index  index.html index.htm;

       }

 

}

保存退出

9.  停掉uwsgi和nginx

(env) root@H:/etc/nginx/conf.d# cd  /srv/script/

10. 收集静态文件

(env) root@H:/srv/script# cd  ../dolphun/dolphun/

(env) root@H:/srv/dolphun/dolphun# vi  settings.py

在最后加

STATIC_ROOT = os.path.join(BASE_DIR, "static_all")

保存退出开始收集

(env) root@H:/srv/dolphun# cd ..

(env) root@H:/srv/dolphun# python  manage.py collectstatic

重启uwsgi和nginx

(env) root@H:/srv/dolphun# cd ../script/

(env) root@H:/srv/script# uwsgi --ini  uwsgi.ini

(env) root@H:/srv/script# /etc/init.d/nginx  start

完成!

 


最后

以上就是快乐自行车为你收集整理的Django+uwsgi+nginx+python3部署阿里云ECS的全部内容,希望文章能够帮你解决Django+uwsgi+nginx+python3部署阿里云ECS所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部