Ubuntu/Centos+uWsgi+Nginx+阿里云服务器部署Django项目

以下均以Ubuntu为例

阿里云创建实例

这有道云不能上传图片,简单描述,镜像选择的是Ubuntu,其他按照步骤来就行,注意添加规则,默认不添加MySQL的服务。

python环境搭建

# 更新软件
sudo apt-get update
# 安装python3和pip
sudo apt-get python3-dev
sudo apt-get install python3-pip
# 安装虚拟环境
pip3 install virtualenv 
# 这个使用需要配置环境变量 
pip3 install virtualenvwrapper 
# 创建虚拟环境 下面详细介绍参数
virtualenv 环境名称 --python=python3.6 --no-site-packages
# 激活虚拟环境
source 环境名称/bin/activate
# 退出当前虚拟环境
deactivate

用法: virtualenv [OPTIONS] DEST_DIR
选项:
–version 显示当前版本号。
-h, –help 显示帮助信息。
-v, –verbose 显示详细信息。
-q, –quiet 不显示详细信息。
-p PYTHON_EXE, –python=PYTHON_EXE 指定所用的python解析器的版本,比如 –python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器
–clear 清空非root用户的安装,并重头开始创建隔离环境。
–no-site-packages 令隔离环境不能访问系统全局的site-packages目录。
–system-site-packages 令隔离环境可以访问系统全局的site-packages目录。
–unzip-setuptools 安装时解压Setuptools或Distribute
–relocatable 重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。
–distribute 使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。
–extra-search-dir=SEARCH_DIRS 用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。
–never-download 禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。
–prompt==PROMPT 定义隔离环境的命令行前缀。

MySQL安装和配置

安装

sudo apt-get install mysql-server

初始化

# 初始进入没有密码
mysql -uroot -p
# 修改密码 
update user set authentication_string=password("root") where user="root";
flush privileges;
# 远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;

配置

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改 bind-address = 0.0.0.0

可以使用本地的navicat连接服务器的数据库

Git安装和配置

1.安装
    sudo apt-get install git
2.配置
    git config --global user.name ""
    git config --global user.email ""
3.创建验证用的公钥
    ssh-keygen -C 'you email address@gmail.com' -t rsa
4.添加key
    cd ~/.ssh
    打开 id_rsa.pub   将公钥添加至仓库服务器
5.拉去代码
	git clone https://xxx/xxx.git
6.安装项目依赖
	在搭建好的虚拟环境中
	pip install -r requirements.txt

uwsgi安装和配置

安装

pip3 install uwsgi

运行测试

# uwsgi --http :8000 --home "虚拟环境" --chdir "项目目录" -w "wsgi文件" 
uwsgi --http :8000 --home /home/env/testEnv/ --chdir /home/test/ -w test.wsgi

uwsgi.ini配置

[uwsgi]
# 项目根目录路径(full path)
chdir= /home/test/ 
# wsgi文件 两种表示方法
module=test.wsgi:application 
# wsgi-file = test/wsgi.py
# 虚拟环境目录 (full path)
home=/home/env/testEnv/
# 启用主进程
master=true
# 后台程序的pid
pidfile = uwsgi.pid
# 最大工作进程数(CPU密集型建议设为CPU核心数,IO密集型建议设为CPU核心数的两倍)
processes =2 
# unix套接字文
socket=127.0.0.1:8000
# socket文件权限 
chmod-socket=777
# 退出时清空环境 
vacuum=true 
# 设置日志目录
daemonize = /home/test/test_log/run.log
# 表示不记录正常信息,只记录错误信息,否则你的日志可能很快就爆满了! 
disable-logging = true

启动:uwsgi --ini uwsgi.init&
& 将一个进程放置到后台运行的时候,Bash 会提示这个进程的进程 ID

Nginx的安装和配置

下载解压

wget http://nginx.org/download/nginx-1.13.7.tar.gz  
tar -zxvf nginx-1.13.7.tar.gz

下载及解压目录 为 /home

安装

sudo ./configure 
sudo make 
sudo make install
# 一般安装完成之后可以在浏览器中输入IP地址测试是否成功

nginx一般默认安装好的路径为/usr/local/nginx,进入/usr/local/nginx/conf/目录,然后备份一下nginx.conf文件,以防意外。

sudo cp nginx.conf nginx.conf.bak

nginx.conf配置

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
...
    server {
        listen       80;
        server_name  服务器名称/IP地址;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			include   uwsgi_params;
			uwsgi_pass   127.0.0.1:8000;
			uwsgi_param   UWSGI_SCRIPT   项目名称.wsgi;
			uwsgi_param   UWSGI_CHDIR   /home/test/; # 项目的路径; uwsgi中配置的chdir
            #root   html;
            #index  index.html index.htm;
        }
		location /static/ {
			alias /home/test/static/; #静态资源路径
	    }
	...
    }
}

至于静态资源路径,自己settings.py里怎么设置,你就按那个设置就好。下面会详细介绍

进入/usr/local/nginx/sbin/目录,执行下面命令先检查配置文件是否有错:

./nginx -t

没有错就执行以下命令:

./nginx

终端没有任何提示就证明`nginx启动成功。

总结

配置完成上述内容,项目启动就可以直接在浏览器访问了。但是呢一般会遇到一些问题。别急,下面这篇点击查看详情:uWsgi+Nginx部署Django项目常见的问题及总结将会总结以下常见的问题,以及解决的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值