CentOS7用uwsgi+Nginx部署Django2.0超详细步骤

首先: /home/mysite为我的django项目,/home/mysite_env为虚拟环境,需要:Django2.0,uwsgi, Nignx。其实无论你是Django2或者以上,python3.7之类的都可以使用本教程。

第一:安装python3.5.2
环境:

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

编译安装:

./configure prefix=/usr/local/python3
make && make install

ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

将下面两个的第一行内容后面都加上“2.7”

vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down

第二:安装虚拟环境
虚拟环境:
pip install virtualenv
安装完成后,执行
cd /home/python
virtualenv venv
会报: bash: virtualenv: command not found
此时,可通过find命令查找到virtualenv安装目录
find / -name virtualenv
得出在:/usr/local/python3/bin/virtualenv目录下
再执行

/usr/local/python3/bin/virtualenv mysite_env

即创建了一个虚拟环境mysite_env

cd mysite_env

source bin/activate

pip install django==2.0 

第三步:安装uwsgi

pip install uwsgi

验证是否能用uwsgi访问:

uwsgi --http 127.0.0.1:8001 --chdir /home/mysite --home /home/mysite_env --module mysite.wsgi:application

uwsgi.ini配置如下:

[uwsgi]
chdir = /home/mysite # 项目
home = /home/mysite_env # 项目虚拟环境
module = mysite.wsgi:application

master = True
processes = 10
harakiri = 60
max-requests = 5000

http = 127.0.0.1:8001 # 指定http端口

vacuum = True
daemonize = /home/mysite/mysite_uwsgi/uwsgi.log
pidfile = /home/mysite/mysite_uwsgi/uwsgi.pid

ini:
正常关闭uwsgi进程:uwsgi --stop /home/mysite_uwsgi/master.pid
强制关闭全部uwsgi进程:ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9

第四步:静态文件
写好django项目打包上传到服务器,修改setting.py
ALLOWED_HOSTS = [’*’,] #允许所有ip访问django项目
DEBUG = False  #关闭DEBUG模式
STATIC_ROOT=’/home/mysite/static/’ #配置静态文件存放的目录
把django项目中的静态文件分离出来

python manage.py collectstatic

最后将“STATIC_ROOT=’/home/mysite/static/’”从settins删除否则启动会报错。

第五步:安装nginx

wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2.tar.gz/
./configure --prefix=/usr/local/nginx
make && make install
cd /usr/local/nginx/sbin/

启动:
./nginx
以下是停止,重载等常用命令:
./nginx -s stop
./nginx -s quit
./nginx -s reload
(注意:如果报端口80被占用:1、yum install net-tools2、ps aux|grep nginx)

修改nginx配置:

 server {
     listen       80;
     server_name  localhost;
    location / {
     root /home/CMS;
     include uwsgi_params;
     proxy_pass http://127.0.0.1:8000;
     uwsgi_read_timeout 30;
        }
location /static {
     autoindex on;
     alias /home/mysite/static/;  #静态文件访问路径
          }

启动django

uwsgi --ini uwsgi.ini

(lsof -i :[:8001]可以找出占用8001端口的进程)
重载nginx:

./nginx -s reload
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于 CentOS 操作系统的 Nginx + Uwsgi + Flask 部署服务的详细操作步骤: 1. 安装必要的软件包 ```bash yum install epel-release yum install nginx yum install python3 python3-pip pip3 install uwsgi flask ``` 2. 创建 Flask 应用程序 在服务器上创建 Flask 应用程序,例如: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 3. 创建 uwsgi 配置文件 在服务器上创建一个 uwsgi 配置文件,例如: ```ini [uwsgi] module = wsgi:app master = true processes = 5 socket = /tmp/uwsgi.sock chmod-socket = 660 vacuum = true die-on-term = true ``` 其中,`module` 参数指定 Flask 应用程序所在的模块和变量名,`socket` 参数指定 uwsgiNginx 通信的 Unix 套接字文件位置。 4. 创建 Nginx 配置文件 在服务器上创建一个 Nginx 配置文件,例如: ```nginx server { listen 80; server_name your-domain.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } } ``` 其中,`listen` 参数指定监听的端口,`server_name` 参数指定服务器的域名或 IP 地址,`location` 参数指定请求 URL 的路径,`uwsgi_pass` 参数指定 uwsgiNginx 通信的 Unix 套接字文件位置。 5. 启动服务 在服务器上启动 uwsgiNginx 服务: ```bash uwsgi --ini uwsgi.ini & systemctl start nginx ``` 6. 测试服务 在浏览器中输入服务器的域名或 IP 地址,应该能够看到 Hello, World! 的输出。 以上就是在 CentOS 上使用 Nginx + Uwsgi + Flask 部署服务的详细操作步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值