41 views

ubuntu系统怎么部署Django

By | 2019年8月8日

主要环境:

Ubuntu: Ubuntu 18.04.2 LTS

服务器: AWS t2.micro

安装软件:

首先apt-get安装Python, nginx

设置Python软连接:

sudo ln -s Python3路径 /usr/bin/python

pip安装Django, uwsgi

配置uwsgi:

首先新建一个Django项目,跳转到/var/www/html/,执行以下命令:

django-admin startproject myblog

如果提示django-admin不可用就执行以下命令重新安装django-admin:

sudo apt-get install python-django-common python-django

创建完Django工程,cd到myblog目录,在manage.py文件相同目录创建一个uwsgi.ini文件,文件内容如下:

ubuntu系统从无到有部署Django

其中:

socket是服务器内部路由的地址,端口号可以随便写,只要没有被占用就行;

chdir是django项目的路径;

wsgi-file是django项目自带的wsgi文件,要写全路径。

为了保证配置好的django项目可以被外网访问,还需要修改settings.py文件:ALLOWED_HOSTS = [“你的服务器外网IP”]

配置nginx:

nginx路径: /etc/nginx

配置文件:/etc/nginx/nginx.conf

添加配置文件内容:在http节点下增加以下内容:

server {

listen 80;

server_name 你的服务器外网IP或者域名;

charset utf-8;

location / {

# 必须和uwsgi.ini中socket一样

uwsgi_pass 127.0.0.1:8080;

include uwsgi_params;

}

}

操作nginx的几个命令:

重新加载:sudo nginx -s reload

重启: sudo nginx -s restart

第一次启动/关闭后启动:sudo nginx -c /etc/nginx/nginx.conf

关闭:sudo nginx -s stop

启动网站:

启动uwsgi: uwsgi uwsgi.ini

启动nginx: sudo nginx -c /etc/nginx/nginx.conf

使用系统服务的方式启动网站:

前面的方式虽然也能够启动网站,但是如果关掉命令行,或者退出远程窗口的话,uwsgi服务也就停了,所以必须改进,我选择使用系统服务的方式启动uwsgi。

首先为新网站创建一个服务文件:

sudo vi /etc/systemd/system/myblog.service

服务文件内容:

[Unit]

Description=uWSGI instance to serve summary

After=network.target

[Service]

User=ubuntu

Group=www-data

WorkingDirectory=/var/www/html/myblog

ExecStart=/home/ubuntu/.local/bin/uwsgi /var/www/html/myblog/uwsgi.ini

[Install]

WantedBy=multi-user.target

保存好只会就可以使用systemctl方式启动uwsgi了,具体命令有:

停止服务:sudo systemctl stop myblog

启动服务:sudo systemctl start myblog

重启服务:sudo systemctl restart myblog

其它问题:

由于django项目会引用静态文件,所以访问上面的方式启动的网站时会发现网页结构是错乱的。这个可以通过配置nginx路由的方式解决,主要就是location结点的设置。就不在本文中讲解了,网上很多。

ubuntu系统从无到有部署Django

本文编辑于2019年08月8日,属于云漫网络原创内容,由特约作者(云漫网络技术员)首发在win-man.com,云漫网络每日更新发布行业原创内容,转载请注明出处。否则属侵权行为一定追究责任。

本文转载于:http://win-man.com
本文关键词:ubuntu
作者:云漫网络技术员

发表评论

电子邮件地址不会被公开。 必填项已用*标注