我的项目结构

1. 执行`python manage.py migrate`命令,将迁移文件,映射到数据库中,创建相应的表。

进入数据库 use mxonline数据库     source /home/Mxonline3-master/mxonline.sql  导入数据

2. 执行`python manage.py runserver 0.0.0.0:8000`,然后在你自己电脑上,在浏览器中输入`http://你的服务器的ip地址:8000/`,访问下网站所有页 面,确保所有页面都没有错误。

3. 设置`ALLOW_HOST`为你的域名,以及ip地址。

4. 设置`DEBUG=False`,避免如果你的网站产生错误,而将错误信息暴漏给用户。

### 安装uwsgi

1. uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是他的强项。uwsgi是使用python编写的,因此通过`pip install uwsgi`就可以了。(uwsgi必须安装在系统级别的Python环境中,不要安装到虚拟环境中)。

2. 使用命令`uwsgi --http :8000 --module zhiliaoketang.wsgi --vritualenv=/root/.virtualenvs/django-env-py2`。用`uwsgi`启动项目,如果能够在浏览器中访问到这个页面,说明`uwsgi`可以加载项目了。

### 编写uwsgi配置文件:

在项目的路径下面,创建一个文件叫做mxonline.ini的文件

写入配置:

[uwsgi]
# socket文件
socket = 127.0.0.1:8000
# 项目的路径
chdir = /home/Mxonline3-master
# Django的wsgi文件
module = Mxonline3.wsgi
# 进程相关的设置
# 主进程
master = true
# 最大数量的工作进程
processes = 10
# 设置socket的权限
chmod-socket = 664
# 退出的时候是否清理环境
vacuum = true
buffer-size = 65536
# Python虚拟环境的路径
home = /root/.virtualenvs/django_env

然后使用命令`uwsgi --ini mxonline.ini`,看下是否还能启动这个项目。

### 安装nginx:

1. nginx是一个web服务器。用来加载静态文件和接收http请求的。通过命令`sudo apt install nginx`即可安装。

2. `nginx`常用命令:

    * 启动nginx:service nginx start

    * 关闭nginx:service nginx stop

    * 重启nginx:service nginx restart

### 编写nginx配置文件:

在/etc/nginx/conf.d下新建一个文件  mxonline.conf

写入配置:

 upstream django {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name www.donghao.club;
server_name 47.107.66.196;
charset utf-8;
client_max_body_size 75M;
location /static {
alias /home/Mxonline3-master/static;
}
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
}

写完配置文件后,为了测试配置文件是否设置成功,运行命令:`service nginx configtest`,如果不报错,说明成功。

每次修改完了配置文件,都要记得运行`service nginx restart`。

回到项目->使用命令   uwsgi mxonline.ini

这样项目就运行起来了

值得注意的是:由于我是用的阿里云服务器,我们需要开放25端口,用来发送邮件,不然会发送超时。

这样就部署成功了,当然你也可以用supervisor来对进程管理。

mxonline 线上地址:http://www.donghao.club/

Github:https://github.com/1417766861/Mxonline3.6

Mxonline3.6 在阿里云服务器上的部署(uwsgi nginx)的更多相关文章

  1. 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)

    在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...

  2. 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法

    在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...

  3. jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制

    问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2:   刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...

  4. 使用Navicat连接阿里云服务器上的MySQL数据库--转

    手把手教你如何正确连接阿里云服务器上的数据库: 1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示. 2.因为是连接服务器上的MySQL,所以我们使用SSH连接, ...

  5. 阿里云服务器上通过Docker部署redmine

    背景:在日常工作的过程中会遇到各种各样的问题,每个问题来了之后需要花时间解决.这里就面临两个问题. 1:问题责任不明确,有时候会遇到数据库或者物理服务器的问题,这时候就需要把相应问题指派给相应的人,传 ...

  6. unigui在阿里云服务器上部署

    unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...

  7. Linux学习2-在阿里云服务器上部署禅道环境

    前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...

  8. 使用Navicat连接阿里云服务器上的MySQL数据库=======Linux 开放 /etc/hosts.allow

    使用Navicat连接阿里云服务器上的MySQL数据库   1.首先打开Navicat,文件>新建连接> 2,两张连接方法 1>常规中输入数据库的主机名,端口,用户名,密码 这种直接 ...

  9. 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    在阿里云服务器上配置CentOS+Nginx+Python+Flask环境 项目运行环境 阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿 ...

随机推荐

  1. jquery checkbox反复调用attr('checked', true/false)只有第一次生效 Jquery 中 $('obj').attr('checked',true)失效的几种解决方案

    1.$('obj').prop('checked',true) 2. $(':checkbox').each(function(){ this.checked=true; }) 为什么:attr为失效 ...

  2. C的指针和数组

    int i; //定义整型变量i int *p; //定义一个指向int的指针变量p int a[5]; //定义一个int数组a int *p[5]; //定义一个指针数组,其中每个数组元素指向一个 ...

  3. s5-1 网络层引言

    网络层要做什么? 源和目的之间的网络有哪些类? 数据报网络  提供无连接的服务 虚电路网络  提供面向连接的服务  网络层的目标:把数据分组一路送到接收机.  网络层利用下层--数据链路层提供的服 ...

  4. 第21章:MongoDB-聚合操作--聚合管道--$geoNear

    ①$geoNear 使用“$geoNear”可以得到附近的坐标点. ②范例:准备测试数据

  5. 一个简单的MySQL多实例环境搭建

    安装mysql 初始化两个数据库目录 mysql_install_db --datadir=/usr/local/var/mysql1 --user=mysql mysql_install_db -- ...

  6. ON_UPDATE_COMMAND_UI和ON_COMMAND有什么区别?

    区别如下: UPDATE_COMMAND_UI表示处理菜单对应的用户界面显示状态. COMMAND表示处理该菜单对应的功能. 传统SDK程序要改变选单命令项状态,可以呼叫EnableMenuItem或 ...

  7. 队列<一>

    这里用的递归法,采用两种版本,一种是C语言,一种是C++:但是,用C语言没有“引用”,所以采用的是指向指针的指针:而C++具备“引用”,所以直接用&引用,简洁: 先看C++的代码: BiTre ...

  8. Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'

    Mac OS X的升级或其他原因可能会导致MySQL启动或开机自动运行时   在MySQL操作面板上会提示“Warning:The /usr/local/mysql/data directory is ...

  9. day27(反射之内省机制)

    内省 内省:底层是使用反射机制实现的,是对于反射的进一步封装. 反射:通过类名来获取类中的所有属性和方法及类中的所有隐藏的方法. 内省:通过一个标准类(javabean类)来获取bean中的字段.ge ...

  10. UIImageView的frame设置(4种方式)

    查看图片宽高后,再去设置UIImageView的frame.(不推荐) 用代码自动获取图片的宽高来设置UIImageView的frame: 创建UIImageView的同时,直接设置UIImageVi ...