CentOS7中uwsgi+nginx配置部署python web

7 篇文章 0 订阅
3 篇文章 0 订阅

首先介绍相关知识:
WSGI:
运行python代码的容器,Web服务器网关接口,没有官方实现,
更像一个协议,只要遵循这个协议,就可以在任何服务器上运行

wsgi.py:
application对象:在python模块中用application对象与应用服务器交互
settings:Django需要导入的模块,应用定义

uWSGI:实现WSGI所有接口的软件
监听端口,完全用C编写
配置:
项目目录下新建uwsgi.ini文件

nginx:
作用:负载均衡,多台服务器轮流执行
反向代理:隐藏真实服务器
实现流程:用户请求nginx,nginx转发到uwsgi,运行django下的python代码
请求静态文件:直接由nginx返回

uwsgi安装配置:
进入虚拟环境
pip install uwsgi

在项目目录下创建uwsgi.ini
配置如下:

[uwsgi]
# socket=外网ip:端口(使用nginx连接时,使用socket)
http=0.0.0.0:8000  # 直接用来做服务器,并且127.0.0.1只能本地访问网站
chdir=你的项目根目录
wsgi-file=wsgi.py文件位置
processes=4
threads=2
master=True
pidfile=uwsgi.pid  # 主端口号id,用于停止服务
daemonize=uswgi.log  # 日志文件

启动:uwsgi –ini uwsgi.ini(注意,是双短横线,下同)
停止:uwsgi –stop uwsgi.pid
重启:uwsgi –reload uwsgi.pid
使用http协议查看网站运行情况,运行正常,但是静态文件无法加载

访问网站,完成uwsgi测试!

nginx下载配置(我这里是CentOS7):
1、添加CentOS 7 EPEL仓库

sudo yum install epel-release

2、安装nginx

sudo yum install -y nginx

用yum安装的nginx可以非常简便的启动nginx

sudo nginx  # 启动nginx
sudo nginx -s stop  # 停止nginx
sudo nginx -s reload  # 重启nginx

配置nginx

sudo vim /etc/nginx/nginx.conf

在server下添加新的location项,指向uwsgi的ip与端口

location / {
    include uwsgi_params;
    uwsgi_pass 0.0.0.0:8000;
}

启动uwsgi再启动nginx测试,然后访问网站测试

uwsgi --ini uwsgi.ini
sudo nginx

nginx静态文件配置:
所有的静态文件都会由nginx处理,不会将请求转到uwsgi
配置nginx的静态项,打开nginx.conf文件,找到server,添加新location

location /static {
    alias /var/www/test/static/;
}

注意,以后的静态文件都会传入上面这个文件夹内

修改文件夹权限,然后创建static目录,顺序不可逆

sudo chmod 777 /var/www/test
cd /var/www/test
sudo mkdir static

PS:如果是配置Django的服务需要在Django设置中添加

STATIC_ROOT='/var/www/test/static/'
STATIC_URL='/static/'

重启uwsgi、nginx,测试,完成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值