Nginx Uwsgi 代理Python

1.Nginx+Uwsgi+Django 项目整体架构图

在这里插入图片描述

2.Uwsgi代理配置场景

步骤一、安装python3的环境
步骤二、安装Django框架、Uwsgi
步骤三、单独测试Django与Uwsgi是否正常
步骤四、配置项目,使用项目以Uwsgi方式启动
步骤五、配置Nginx反向代理Uwsgi

1.环境准备

0.安装依赖软件包
yum install libffi-devel openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y
1.安装python3环境
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
tar xf Python-3.7.2.tgz
cd Python-3.7.2/
./configure && make && make install
2.安装Django框架与Uwsgi
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install --upgrade pip
pip3 install uwsgi
pip3 install django
3.测试Uwsgi是否正常,新建test.py文件
cat test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello Django"]
# 使用uwsgi 启动
uwsgi --http :8001 --wsgi-file test.py
#使用curl访问
curl 127.0.0.1:8001

4.测试完成后,接着使用Django配置个demo测试
django-admin.py startproject demosite
5.修改为所有人可访问
vim demosite/settings.py 
28:ALLOWED_HOSTS = [*]
6.升级sqlite
tar xf  sqlite-autoconf-3300100.tar.gz
cd sqlite-autoconf-330010
#centos7默认有python2.7版本
ln -sf /usr/local/bin/sqlite3   /usr/bin/sqlite3
echo 'export LD_LIBRARY_PATH="/usr/local/lib" '   >>/etc/profile
.  /etc/profile
7.启动进行测试
python3 manage.py runserver 0.0.0.0:8002
ss -lntup |grep 8002

在这里插入图片描述
2.通过Uwsgi启动Django

cat /html/django/oldboyedu/uwsgi.ini
[uwsgi]
socket = 127.0.0.1:9999 
workers = 2       
max-requests = 1000   
buffer-size = 30000
pidfile = /run/uwsgi.pid 
daemonize = /var/log/uwsgi.log
**3.配置nginx访问django**
cat /etc/nginx/conf.d/py.conf
server {
   listen 80;
   server_name bbs.oldboy.com;
   client_max_body_size 100M;
location / {
   index index.html;
   include uwsgi_params;
   uwsgi_pass 127.0.0.1:9999;
   uwsgi_param UWSGI_SCRIPT oldboyedu.wsgi; 
   uwsgi_param UWSGI_CHDIR /html/django/oldboyedu; 
	}
}

3.nginx Uwsgi部署Django项目

mkdir /html/bbs-django
tar xf BBS.zip
cd /html/bbs-django/BBS
#安装依赖关系
pip install  -r  re.txt
#准备数据库,并导入数据
create database bbs;
use bbs;
source /html/bbs-django/BBS/bbs.sql
grant all on bbs.* to 'bbs'@localhost identified by 'bbs';
#修改程序代码使用数据库
vim  /html/bbs-django/BBS/settings.py
DATABASES = {
    'default': {
	'ENGINE': 'django.db.backends.mysql',
    'NAME': 'bbs',
    'HOST': "127.0.0.1",
    'USER': 'bbs',
    'PASSWORD': 'bbs',
    'PORT': 3306,
 }
}
#配置Uwsgi
cat /html/bbs-django/BBS/uwsgi.ini
[uwsgi]
socket = 127.0.0.1:9999 
workers = 4       
max-requests = 1000  
buffer-size = 30000
pidfile = /run/uwsgi.pid 
daemonize = /var/log/uwsgi.log
#配置nginx Uwsgi反向代理
cat /etc/nginx/conf.d/py.conf
server {
	listen 80;
	server_name bbs.oldboy.com;
	client_max_body_size 100M;
location /static {
	alias /html/bbs-django/BBS/static/;
}
location /media {
	alias /html/bbs-django/BBS/media;
}
location / {
	index index.html;
	include uwsgi_params;
	uwsgi_pass 127.0.0.1:9999;
	uwsgi_param UWSGI_SCRIPT BBS.wsgi; 
	uwsgi_param UWSGI_CHDIR /html/bbs-django/BBS; 
	}
}
#启动nginx
#浏览器访问
http://10.0.0.51/index

#排错
安装redis——sessions
pip install django-redis_sessions
去掉py代码中最后逗号
sed -n 151p /usr/local/lib/python3.7/site-packages/django/contrib/admin/widgets.py
      '%s=%s' % (k, v) for k, v inparams.items()
修改准许所有人访问
grep -i Allow BBS/settings.py
ALLOWED_HOSTS = ['*']
#重启Uwsgi,再进行测试
pkill uwsgi
uwsgi --ini /html/bbs-django/BBS/uwsgi.ini

排错看日志最后就行

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值