通过uwsgi与nginx上线项(django,flask,drf)

开篇说明:此博客不介绍怎么安装nginx与uwsgi,只说明两个配置文件为什么这么配置

django版本

uwsgi(以下的uwsgi为二选一,两者皆可)

uwsgi.xml

<uwsgi>
   <socket>127.0.0.1:8808</socket> <!-- 自定义内部端口 -->
   <chdir>/home/project1/Mybbsone</chdir> <!-- 项目路径 -->
   <module>Mybbsone.wsgi</module>  <!-- xxx.wsgi,xxx为项目的目录(此为启动文件)-->
   <processes>4</processes> <!-- 进程数(创建四个worker) -->
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件(表示保存到当前目录的uwsgi.log) -->
</uwsgi>

uwsgi.ini

[uwsgi]
socket = 127.0.0.1:8808 <!-- 自定义内部端口 -->
chdir = /home/project1/Mybbsone <!-- 项目路径 -->
module = Mybbsone.wsgi  <!-- xxx.wsgi,xxx为项目的目录(此为启动文件)-->
processes = 4 <!-- 进程数(创建四个worker) -->
daemonize = uwsgi.log <!-- 日志文件(表示保存到当前目录的uwsgi.log) -->

nginx

http{
	listen 80 <!-- 监听端口 -->
	server_name xxxx <!-- 表示名(最好为自己的域名,无域名则为127.0.0.1)(可以百度一下listen与server_name的区别) -->
	location / { <!-- 监听到开始路由跳转 -->
		include uwsgi_params <!-- 跳转内容 -->
		uwsgi_pass 127.0.0.1:8808 <!-- 跳转ip与port(无法确定就与uwsgi里的内部端口相同) -->
		uwsgi_param UWSGI_SCRIPT bbsapi.wsgi <!-- 启动文件(无法确定就与uwsgi里的module相同) -->
		uwsgi_param UWSGI_CHDIR /home/project1/Mybbsone <!-- 跳转路径(无法确定就与uwsgi里的chdir相同) -->
	}
	location /static { <!-- 静态文件加载目录(有就写,没有就不写) -->
		alias /home/project1/Mybbsone/static <!-- 静态文件目录 -->
	}
}

flask版本

uwsgi(以下的uwsgi为二选一,两者皆可)

uwsgi.ini

[uwsgi]
socket = 127.0.0.1:5001 <!-- 内部自定义端口 -->
pythonpath = /home/workhome/ <!-- 项目路径 -->
module = app <!-- 这里目前不知道有什么用(如果有知道请务必私信告诉我) -->
wsgi-file = /home/workhome/app.py <!-- 启动文件 -->
callable = app <!-- 项目需要调用的启动类 -->
processes = 4 <!-- 进程数 -->
daemonize = /home/workhome/log.txt <!-- 日志保存目录 -->

uwsgi.ini

nginx

http {
    server {
        listen       5000;  <!-- 监听端口 -->
        server_name  xxxx; <!-- 标识名字 -->
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:5001;  <!-- 跳转ip与port(无法确定就与uwsgi里的内部端口相同) -->
            uwsgi_param UWSGI_CHDIR /home/workhome/; <!-- 项目目录(无法确定就与uwsgi里的chdir相同) -->
            uwsgi_param UWSGI_SCRIPT app:app; <!-- 这里目前不知道有什么用(如果有知道请务必私信告诉我) -->
        }
    }
}

drf版本

uwsgi

uwsgi与django相同,请参考django的uwsgi
nginx

http {
    server {
        listen 80;  <!-- 前端监听端口 -->
        server_name  xxxx;  <!-- 标识名字 -->
        charset utf-8;
        location / {
            root /home/html; <!-- 前端打包后的目录名 -->
            index index.html; <!-- 初始页(默认写index.html) -->
            try_files $uri $uri/ /index.html; <!-- 解决单页面应用刷新404问题 -->
        }
    }
   server {
        listen 8000; <!-- 后端监听端口 -->
        server_name  xxxx; <!-- 标识名字 -->
        charset utf-8;
        location / {
           include uwsgi_params; <!-- 跳转内容 -->
           uwsgi_pass 127.0.0.1:8808; <!-- 跳转ip与port(无法确定就与uwsgi里的内部端口相同) -->
           uwsgi_param UWSGI_SCRIPT luffyapi.wsgi;  <!-- 启动文件(无法确定就与uwsgi里的module相同) -->
           uwsgi_param UWSGI_CHDIR /home/project1/test_ku_of_yhwu/luffyapi/; <!-- 跳转路径(无法确定就与uwsgi里的chdir相同) -->
        }
        location /static { <!-- 静态文件加载目录(有就写,没有就不写) -->
            alias /home/project1/test_ku_of_yhwu/luffyapi/luffyapi/static; <!-- 静态文件目录 -->
        }
    }
}

附:
常用的nginx与uwsgi命令

nginx					 启动默认nginx文件(默认文件为nginx.conf)
nginx -c nginx.conf		 启动指定nginx文件
nginx -s reload			 重启当前nginx文件
nginx -s stop			 停止当前nginx文件

pkill -f uwsgi -9		 停止当前uwsgi文件
uwsgi -x xxx.xml		 启动uwsgi.xml文件
uwsgi xxx.ini			 启动uwsgi.ini文件
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uWSGINginx是一种常见的Flask应用程序部署组合。uWSGI是一种Web服务器,它可以在后台运行Python应用程序,并提供了许多高级功能,如负载均衡、缓存、网关接口等。Nginx是一种反向代理服务器,它可以将传入的请求转发给uWSGI服务器,并负责处理静态文件、SSL加密等。 下面是一些简单的步骤,可以帮助你使用uWSGINginx部署Flask应用程序: 1. 安装uWSGINginx 在Linux系统上,你可以使用包管理器来安装uWSGINginx。例如,在Ubuntu上,你可以运行以下命令: ``` sudo apt-get update sudo apt-get install nginx uwsgi uwsgi-plugin-python3 ``` 2. 创建Flask应用程序 在你的项目目录中创建一个名为`app.py`的文件,并编写Flask应用程序代码。例如: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' ``` 3. 创建uWSGI配置文件 在你的项目目录中创建一个名为`uwsgi.ini`的文件,并编写uWSGI配置。例如: ```ini [uwsgi] module = app callable = app master = true processes = 4 socket = /tmp/uwsgi.sock chmod-socket = 666 vacuum = true die-on-term = true ``` 其中,`module`参数指定了Flask应用程序的Python模块名,`callable`参数指定了Flask应用程序的实例名。`socket`参数指定了uWSGI服务器监听的Unix套接字路径,`processes`参数指定了uWSGI服务器的工作进程数。 4. 测试uWSGI服务器 在命令行中,进入你的项目目录,并运行以下命令启动uWSGI服务器: ``` uwsgi --ini uwsgi.ini ``` 如果一切正常,你应该能够通过访问Unix套接字路径来测试uWSGI服务器: ``` curl http://localhost/tmp/uwsgi.sock ``` 你应该看到Flask应用程序的输出。 5. 创建Nginx配置文件 在Nginx配置文件中添加以下内容: ``` server { listen 80; server_name yourdomain.com; location / { include uwsgi_params; uwsgi_pass unix:///tmp/uwsgi.sock; } } ``` 其中,`listen`参数指定了Nginx服务器监听的端口和IP地址,`server_name`参数指定了该虚拟主机的域名或IP地址。`location`块指定了请求转发规则,`uwsgi_pass`参数指定了uWSGI服务器监听的Unix套接字路径。 6. 启动Nginx服务器 在命令行中,运行以下命令启动Nginx服务器: ``` sudo service nginx start ``` 如果一切正常,你应该能够通过访问你的域名或IP地址来访问Flask应用程序。 注意:如果你使用的是Ubuntu 18.04或更高版本,你需要将Nginx配置文件中的`include uwsgi_params;`改为`include /etc/nginx/uwsgi_params;`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值