在阿里云(ubuntu系统)上通过Nginx和uwsgi部署Django项目总结

前言:
几天前在阿里云上,购买了一个9.9的学生服务器,想在上面部署一个简单的Django项目,奈何网上一直没有找到合适的教程。经过接近一周的时间,终于部署上去了。感谢慕课网的bobo老师!!!因此在这里写下这一篇总结,以便日后查看。限于博主的水平,这篇文章仅作参考,而且‘深度’完全没有达到其他博主的水平,勿喷!


1,简单介绍一下Nginx和Uwsgi。
Nginx和uwsgi是两个web服务器。Nginx可以实现反向代理和负载均衡,监听uwsgi的端口,可以隐藏uwsgi使用的端口(这里监听的是80端口),使得网站更加安全。Nginx可以直接向客户端返回静态文件,如果要处理其他逻辑,则交给uwsgi去处理。

2,上传本地的web项目到阿里云服务器
通过putty远程登录阿里云服务器的root终端,(如果实在ubuntu下,可以直接用命令:ssh -l root 119.23.34.76登录到远程服务器的终端)。然后上传文件到阿里云服务器。由于之前是在ubuntu系统下上传的文件,所以使用scp命令即可:scp -r /home/linux/Desktop/job/advert root@119.23.34.76:/home/admin/job。如果在win系统下,之前用xshell远程登录软件,可以直接将advert(这是我的项目文件夹)这个文件夹拖到xshell的窗口下即可上传。putty没试过。大家可以试一试。如果不行,win下还可以安装xftp软件直接上传文件。
上传数据库到云服务器。win下可用Navicat实现。

3,在阿里云上搭建Django环境,并进入工作环境,安装所需要的包
这个具体看你需要哪些包,安装的时候也很简单,和在本地安装环境时一样就行了。这里就不具体阐述了,网上也有许多教程,以及一些常见的问题,网上也会有许多答案。这个也不难。(pip freeze>list.txt pip install -r list.txt)

4,安装并测试Nginx服务器
通过pip安装Nginx:pip install nginx
通过ps aux|grep nginx来启动并查看是否启动成功。如果该命令列出的进程里面有nginx,则初步判断已经启动成功了。
通过访问119.23.34.76,我发现已经可以看打Nginx的欢迎页面了。
另外:service nginx restart,这个命令是用来重启nginx服务的。这个命令,这里并不需要。

5,安装uwsgi服务器
pip install uwsgi命令,即可安装。
测试uwsgi:uwsgi - -http :8000 - -module advert.wsgi
命令解释:–http:这个选项,是说明是通过http的方式来启动uwsgi的
:8000,说明该网站将占用8000端口
–module :在后面指出,项目的wsgi.py文件的路径。(advert.wsgi :表示启动advert/wsgi.py文件) 。这里,如果你当前就在advert目录下,按照道理说这个命令可以这样写:uwsgi –http :8000 –module wsgi ,但是不行,会报‘no python application ’这样的错误。所有建议大家就直接在advert目录里,使用这一条命令。
最后,在浏览器中输入:119.23.34.76:8000可以成功看到自己的项目。但是此时css等静态文件并没有加载出来。

6,配置nginx ,使他能够返回我们请求的静态文件
在项目目录下mkdir conf :新建一个文件夹,cd conf :进入conf文件夹。
新建一个my_nginx.conf文件,并且写入如下内容:
(注意:
2,根据你的静态文件的目录,具体更改下面(location /media和location /static)的一些内容)

upstream django {
server 127.0.0.1:8000; // for a web port socket (we’ll use this first)
}
server {
listen 80;
server_name 119.23.34.76 (这里填入你的ip,我这里是这个);
charset utf-8;
client_max_body_size 75M;
location /media {
alias 你的目录/Mxonline/media; # 指向django的media目录
}

location /static {
alias 你的目录/Mxonline/static; # 指向django的static目录
}
location / {
uwsgi_pass django;
include uwsgi_params; #the uwsgi_params file you installed
}
}
接下来进入settings文件:
1,加入:STATIC_ROOT = os.path.join(BASE_DIR, “static/”)
并且注视掉:STATICFILE…..这一条,因为二者不能共存。
2,将debug模式改为false,访问者改为:“*”
然后,将该配置文件加入到nginx的启动配置文件中:
cp 你的目录/conf/mynginx.conf /etc/nginx/conf.d/
最后运行命令:python manage.py collectstatic

7,在配置uwsgi
cd conf :进入conf文件
vi uwsgi.ini 新建配置文件,加入如下内容:
# mysite_uwsgi.ini file
[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /home/admin/Project/  #1,你的项目的路径。
# Django's wsgi file
module          = advert.wsgi           #2,wsgi.py文件的路径
# the virtualenv (full path)

# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
socket          = 127.0.0.1:8000
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true
virtualenv = /root/.virtualenvs/h4          #3,你的虚拟环境的路径

#logto = /tmp/mylog.log                    # 存放日志的文件路径。         

注意:你只需要修改我标注了序号的三处即可。

8,重启nginx服务,以及启动uwsgi服务
serverice nginx restart
uwsgi -i 你的项目目录/conf/uwsgi.ini &

9,最后,大功告成,访问你的网站
119.23.34.76

注意:我的服务器ip为:119.23.34.76,你只需要在配置时,换成你的即可。
参考bobo老师的博客:http://projectsedu.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值