将一个Django项目部署到服务器

环境:Ubuntu 16.04,Python3.5,此处数据库使用sqlite
步骤:
1.安装Python3

	sudo apt install python3.5 
	sudo apt update
	sudo  apt install python3-pip

2.安装虚拟环境及虚拟环境管理
使用apt命令安装虚拟环境和虚拟环境管理工具:

	sudo  apt install python3-virtualenv
	sudo  pip3 install virtualenvwrapper

配置虚拟环境的相关环境变量:
打开配置文件:vim .bashrc
添加:
(如果安装了python2和python3,需要指定一下)

	export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
	export WORKON_HOME=/root/.virtualenvs
	source /usr/local/bin/virtualenvwrapper.shh

退出vim,
刷新环境变量:source .bashrc

3.在虚拟环境中安装各种依赖

mkvirtualenv xx -p /usr/bin/python3  指定环境创建
mvvirtualenv xx 移除
workon xx  进入虚拟环境
pip freeze > virtualpackage.txt  将之前项目环境中所用到的所有依赖导入到virtualpackage文件中
pip install -r virtualpackage.txt   将virtualpackage文件中所有的依赖安装到创建好的虚拟环境中
deactivate 退出虚拟环境。

4.uwsgi安装与配置
pip3 install uwsgi 安装uwsgi
创建一个用户组:

	groupadd uwsgi

在该用户组下创建一个用户:

	useradd uwsgi -g uwsgi -s /usr/sbin/nologin

将项目文件放在自动生成的/home/uwsgi文件夹下,也可放在其它地方,无影响。

vim uwsgi.ini 打开(创建)配置文件
配置文件内容如下:

[uwsgi]
user=uwsgi
; 使用nginx连接时 使用
socket=127.0.0.1:8000
;直接作为web服务器使用
;http=127.0.0.1:8000
;配置工程目录
chdir=/home/uwsgi/blog
;配置项目的wsgi目录。相对于工程目录
wsgi-file=blog/wsgi.py

;wsgi-file = manage.py
;callable = app

;指定虚拟环境目录
virtualenv = /root/.virtualenvs/djangoenv
;指定pythonpath
pythonpath=/root/.virtualenvs/djangoenv/lib/python3.5/site-packages


;配置进程,线程信息
processes=2
threads=2

;启用多线程
enable-threads=True
;允许主进程开子进程
master=True

;进程日志
pidfile=uwsgi.pid
;业务日志
daemonize=uwsgi.log

uwsgi --ini uwsgi.ini 启动uwsgi
ps -ef|grep uwsgi 查看进程

	(djangoenv) root@: blog $ ps -ef|grep uwsgi
	root     29944     1  4 21:45 ?        00:00:00 uwsgi --ini uwsgi.ini
	root     29946 29944  0 21:45 ?        00:00:00 uwsgi --ini uwsgi.ini
	root     29948 29699  0 21:45 pts/0    00:00:00 grep --color=auto uwsgi

5.nginx安装与配置

apt install nginx

安装好之后进入nginx配置文件进行修改

cd /etc/nginx/conf.d/      # 进入该文件夹下添加子配置文件
vim blog_nginx.conf

这里只将配置文件中server部分拿了出来:

	server {
		# 监听在80端口
		listen 80;

		# 主机地址
		server_name 39.108.80.246;

		# 如果有域名,可以使用域名代替主机地址
        #server_name www.blog.com blog.com;

        # 访问路由就是主机地址时,
        location / {
                
                # 反向代理监听在127.0.0.1:8000位置的uwsgi服务器
                # 前提是uwsgi已经运行并监听在8000端口
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:8000;
        }

		# 访问静态资源
		location /static {
   			#root html/blog;

   			# 静态资源目录
	   		alias /root/code/blog/static;
   		}

		location ~* ^.+\.(html|htm|css|js|ico|gif|jpg|jpeg|png)$ {       # 括号中为可访问文件后缀
        	root /data/zfy_home/code/blog/static/;    # 静态文件地址
        	expires 0;
    }
        
    }

配置好配置文件后,测试配置文件:

root@: nginx $ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

启动nginx/重启nginx

你可能感兴趣的:(将一个Django项目部署到服务器)