ubuntu16.04部署django项目


一、安装python版本,如python3.6

 一般上传web项目代码到/srv/http目录下,放在root目录下会有安全危险

1.sudo add-apt-repository ppa:jonathonf/python-3.6
2.sudo apt-get update
3.sudo apt-get upgrade -f
4.apt-get install python3.6
检查python3.6是否安装成功

安装pip3.6

sudo python3.6 -m pip install --upgrade pip

 


检查pip3.6是否安装成功

 

 

二、安装uwsgi

sudo apt-get install python3.6-dev
pip3.6 install uwsgi

 

 

验证uwsgi安装是否成功

testuwsgi.py

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

 

uwsgi --http :8001 --wsgi-file testuwsgi.py 

 


 

 

uwsgi启动 重启 停止

查看uwsgi.pid

ps ax | grep uwsgi

kill -9 pid

三、uWSGI运行Django

1.通过命令的方式运行django项目

uwsgi --http :8000 --chdir /root/gues/ --wsgi-file gues/wsgi.py --master --processes 4 --stats 127.0.0.1:9191

 


 

运行时会提示报错,要设置允许远程访问

ALLOWED_HOSTS = ['公网ip','内网ip','*'] 内网ip可以不用设置,最好不要设置*,设置公网ip或者内网ip即可。

通过浏览器访问验证django服务是否启动成功

 

四、安装nginx

sudo apt update
sudo apt install nginx

 


nginx默认配置文件路径

/etc/nginx/sites-available/default

 

 

验证nginx是否安装成功

五、Nginx+uWSGI+Django进行整合

1.在django项目根目录下新建一个uwsgi.ini文件

uwsgi.ini

[uwsgi]
#请求方式与端口号
socket = :8888
#Django项目路径
chdir = /root/gues
#wsgi文件,项目名称.wsgi
module = gues.wsgi
#运行主进程存在
master = true
#开启进程数
processes = 10
#当服务器退出时自动清理环境
vacuum = true

 


uWSGI运行Django方式二,uwsgi通过命令读取uwsgi.ini配置文件来启动django web项目


http://180.76.60.102:8888不能通过公网的方式访问,本地http://127.0.0.1:8888可以访问

 

2.配置nginx

vim /etc/nginx/sites-available/default

 


server {
listen 80 default_server;
listen [::]:80 default_server;

server_name 127.0.0.1 192.168.15.255; 


root /var/www/html;

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

#server_name _;

location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8888;

}

}

 

 


检查nginx配置是否成功

nginx -t

 

 

记得配置完nginx后一定要重启nginx服务

sudo /etc/init.d/nginx restart

 


六、静态资源配置,静态资源最好不要配置在root目录下存在肉鸡危险,网站文件一般放在 /srv/http目录下

 

收集静态资源到指定目录

# settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'static') #指定样式收集目录,部署django项目的时候需要用到STATIC_ROOT

 


 

执行命令收集静态资源

 
python3.6 manage.py collectstatic

 

 

nginx配置静态资源路由

 

vim /etc/nginx/sites-available/default

 

location /static{
alias /root/gues/static;
}

 


由于项目在root根目录下,所以访问静态资源会提示:403 Forbidden

解决方案,给静态资源文件夹添加读写权限

chmod -R 777 /root/gues/static

 


修改nginx头部的 user www, www 改成root,方法可以但不建议这么做,服务器存在肉鸡危险。

 vim  /etc/nginx/nginx.conf

 

 

 

 

django配置完成。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM