uwsgi 参数解析

uwsgi 参数解析

[uwsgi]
socket = 127.0.0.1:8081  #(也就是你访问这个项目所要访问的ip和端口)
#由于外部还要嵌套Nginx,这里可以使用socket进行通信,如果Nginx和uwsgi部署在同一台机器上,直接使用127.0.0.1
#如果外部直接通过uwsgi访问服务,需将socket改为http-socket或者http,将127.0.0.1改为0.0.0.0
chdir = /path/to/yourproject    #项目目录
virtualenv =/path/to/venv  #虚拟环境所在路径(使用了虚拟环境不用定位到最低级)
wsgi-file = flask_web.py   #编写flask代码的py文件(这个文件内只调用app.run(), 不是我们debug模式下的启动文件)
callable = application  #Flask应用对象(就是你创建Flask(__name__)他的返回值你定义的名字)

plugin = python
master = true
#启动主进程,来管理其他进程

vacuum = true  #设置退出后清理文件

chmod-socket = 664
stats = 0.0.0.0:9191
listen = 4096
#监听队列大小,默认100,太小了一压测队列就满了,调大一点
processes = 5   #uwsgi启动的进程数,可设为机器核数+1
thunder-lock = true   #防止惊群
harakiri = 60  #超时时间(秒)
daemonize = /path/to/uwsgi.log   #进程会在后台运行,并输出日志
pidfile = /path/to/uwsgi.pid   # 记录进程的pid存放位置
uwsgi 启动命令
uwsgi --ini uwsgi.ini
### 在 Django 项目中正确配置 uWSGI 为了使 uWSGI 能够与 Django 项目配合工作,需要完成几个关键步骤。以下是详细的配置方法: #### 1. ### 创建 WSGI 文件 Django 默认会生成一个 `wsgi.py` 文件作为入口点。此文件位于项目的根目录下,通常命名为 `<project_name>/wsgi.py`。确保该文件存在并已正确配置。 示例内容如下: ```python import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') application = get_wsgi_application() ``` 这是 uWSGI 加载应用的关键部分[^3]。 --- #### 2. ### 安装 uWSGI 并测试基本功能 在虚拟环境中安装 uWSGI: ```bash pip install uwsgi ``` 接着,可以通过简单的命令测试 uWSGI 是否能加载 Django 应用: ```bash uwsgi --http :8001 --chdir /path/to/your/project -w myproject.wsgi ``` 其中: - `/path/to/your/project` 是 Django 项目的根目录。 - `myproject.wsgi` 是指向 `wsgi.py` 的模块名。 如果一切正常,应该可以在浏览器中访问 `http://localhost:8001` 来查看 Django 页面[^3]。 --- #### 3. ### 编写 uWSGI 配置文件 推荐使用 `.ini` 格式的配置文件来管理复杂的部署需求。以下是一个典型的配置示例: ```ini [uwsgi] module = myproject.wsgi:application master = true processes = 4 threads = 2 socket = /tmp/uwsgi.sock chmod-socket = 660 vacuum = true die-on-term = true logto = /var/log/uwsgi/myproject.log ``` 解释各参数的作用: - `module`: 指向 WSGI 入口点。 - `master`: 开启主进程模式。 - `processes`: 设置并发的工作进程数。 - `threads`: 每个工作进程的线程数量。 - `socket`: 使用 Unix Socket 方式通信(推荐用于生产环境)。 - `chmod-socket`: 修改套接字权限以允许 Nginx 访问。 - `vacuum`: 自动清理临时文件。 - `die-on-term`: 接收到终止信号时优雅关闭。 - `logto`: 日志保存路径[^2]。 将上述内容保存为 `uwsgi.ini` 文件,并放置于项目根目录下。 --- #### 4. ### 测试 uWSGI 配置文件 通过以下命令启动 uWSGI: ```bash uwsgi --ini uwsgi.ini ``` 检查日志输出是否正常。如果有错误提示,可以根据具体信息调整配置。 --- #### 5. ### 配置 Nginx 反向代理 为了让外部请求能够到达 uWSGI,需配置 Nginx 作为反向代理。编辑 Nginx 配置文件(通常位于 `/etc/nginx/sites-available/default` 或类似的路径),添加以下内容: ```nginx server { listen 80; server_name yourdomain.com; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /path/to/your/project/; } location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } } ``` 主要关注点: - `location /static/`: 映射静态文件路径。 - `include uwsgi_params`: 导入标准的 uWSGI 参数。 - `uwsgi_pass`: 指定 uWSGI 套接字地址。 完成后重启 Nginx: ```bash sudo systemctl restart nginx ``` --- #### 6. ### 系统服务化(可选) 为了实现自动启动和后台运行,可以将 uWSGI 注册为系统服务。创建一个新的 systemd 服务文件 `/etc/systemd/system/uwsgi.service`,内容如下: ```ini [Unit] Description=uWSGI instance to serve myproject After=network.target [Service] User=<username> Group=<groupname> WorkingDirectory=/path/to/your/project/ Environment="PATH=/path/to/venv/bin" ExecStart=/usr/local/bin/uwsgi --ini /path/to/your/project/uwsgi.ini [Install] WantedBy=multi-user.target ``` 启用并启动服务: ```bash sudo systemctl enable uwsgi sudo systemctl start uwsgi ``` --- ### 总结 以上步骤涵盖了从基础到高级的 uWSGI 配置过程,适用于大多数 Django 生产环境部署场景。每一步都经过精心设计,旨在提高稳定性和性能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值