首页 > 系统相关 >python flask虚拟环境 uwsgi nginx Supervisor 宝塔面板部署

python flask虚拟环境 uwsgi nginx Supervisor 宝塔面板部署

时间:2023-11-11 09:03:45浏览次数:35  
标签:www Supervisor 项目 wwwroot nginx 虚拟环境 uwsgi

安装部署对应的python版本

1.安装虚拟环境插件virtualenv

pip install virtualenv

2.创建虚拟环境

virtualenv /www/wwwroot/项目/env

virtualenv + 路径

3.激活虚拟环境

source /www/wwwroot/项目/env/bin/activate

4.退出虚拟环境的指令

deactivate

这里不用管,需要退出的时候再使用


部署flask项目所需模块和文件

1.本地到flask项目路径下使用终端

pip freeze requirements.txt

2.导出所需模块

把requirements.txt文件上传项目根目录

安装所需模块:

pip install -r /www/wwwroot/项目/requirements.txt

3.把项目文件上传到项目目录下,然后使用

python app.py

4.运行访问服务器ip加端口测试模块导入正常,ctrl+c退出

部署安装uwsgi和nginx配置

1.安装uwsgi

pip install uwsgi

2.卸载指令

pip uninstall uwsgi

安装后输入uwsgi测试是否弹出信息

3.项目路径下创建uwsgi.ini配置文件写入以下内容并保存

[uwsgi]
#uwsgi启动时,所使用的地址和端口(这个是http协议的,也可以使用socket协议,将http改成socket)
http=0.0.0.0:5000
#指向网站目录
chdir=/www/wwwroot/项目
#python 启动程序文件
wsgi-file=app.py``> ``
#回调的app对象
callable=app
#处理器数
processes=4
#线程数
threads=2

4.CD到项目路径:/www/wwwroot/项目 启动uwsgi

uwsgi --ini uwsgi.ini &

5.访问服务器ip加端口测试是否正常使用uwsgi,退出uwsgi使用

sudo lsof -i:5000

6. 查看5000端口所在进程id 然后使用

kill -9 进程id

多个空格隔开然后回车杀死


部署nginx

宝塔面板部署就不说了,安装好nginx和Supervisor进程守护

nginx配置:宝塔面板-软件商店-已安装-nginx设置-配置修改-最后面加上:

1.添加 uWSGI 配置这里默认80端口没带证书

server
{
    listen 80;
    server_name baidu.com; #把这个域名换成你自己的

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;
    }
    
    # 可选项:设置静态文件目录
    location /static {
        alias /www/wwwroot/项目/static;
    }
    }

}

2.如果需要带证书可以https访问的用以下配置

#下面为可以访问80端口和https443端口的配置
server {
	listen 80;
	server_name baidu.com;#换成自己的
	return 301 https://$host$request_uri;
}
server {
	listen 443 ssl;
	server_name baidu.com;#换成自己的
	ssl_certificate /path/to/your/certificate.crt;#这里可以是证书crt和pem后缀名
	ssl_certificate_key /path/to/your/private_key.key;#这里是证书key后缀名
	location / {
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:5000;
	}
	# 可选项:设置静态文件目录
	location /static {
		alias /www/wwwroot/项目/static; #写自己的static静态文件路径也可以不要
	}
}
  • 然后保存重启nginx,启动uwsgi:

    uwsgi --ini uwsgi.ini &
    

    测试域名是否正常访问,这里已经反代不需要加端口

最后一步配置Supervisor

1.在项目根目录下创建一个start.sh文件写入以下保存

#激活虚拟环境
source /www/wwwroot/项目/env/bin/activate
#启动uWSGI应用程序
uwsgi --ini /www/wwwroot/项目/uwsgi.ini
  • 宝塔面板-软件商店-已安装-最后一步配置Supervisor设置-添加守护进程:

  • 启动用户自己选,我使用默认的root,运行目录:/www/wwwroot/项目

  • 启动命令:/www/wwwroot/wiki/start.sh 然后保存运行

  • 如果运行报错:请检查以下sudo lsof -i:5000 端口是否被占用,还是一样杀死进程在启动即可

  • 整个项目的操作都是在虚拟环境下执行,甚至用不到退出虚拟环境指令

标签:www,Supervisor,项目,wwwroot,nginx,虚拟环境,uwsgi
From: https://www.cnblogs.com/jaaks/p/17825466.html

相关文章

  • 使用nginxWebUI配置Web网站与端口转发​
    使用nginxWebUI配置Web网站与端口转发石家庄王春海刘春福最近我们公司托管了5台服务器到IDC机房,其中4台服务器组成VMware虚拟化集群,为我公司提供50台左右生产环境的虚拟机并对外提供服务,另1台服务器用于备份。IDC机房提供15个公网的IP地址。其中1个公网的IP地址配置在硬件防火墙(......
  • 解决nginx: [error] invalid PID number in /usr/local/nginx/logs/nginx.pid
    在编辑nginx之后,运行时出现nginx已经在运行,然后输入./nginx-sreload时出现nginx:[error]invalidPIDnumber“”in“/usr/local/nginx/logs/nginx.pid”,进入对应目录可以看到nginx.pid里是空的,因此无法结束或者重启nginx。究其原因是因为每一个nginx进程都对应一个id,存放......
  • 容器云平台No.8~kubernetes负载均衡之ingress-nginx
    容器云平台No.8~kubernetes负载均衡之ingress-nginxIngress是什么?Ingress公开了从集群外部到集群内服务的HTTP和HTTPS路由。流量路由由Ingress资源上定义的规则控制。可以将Ingress配置为服务提供外部可访问的URL、负载均衡流量、终止SSL/TLS,以及提供基于名称的虚......
  • CentOS 7下安装配置Nginx
    本文基于CentOS7下安装配置Nginx操作实践记录整理。一、配置EPEL源sudoyuminstall-yepel-releasesudoyum-yupdate二、安装Nginx sudoyuminstall-ynginx 安装成功后,默认的网站目录为:/usr/share/nginx/html默认的配置文件为:/etc/nginx/nginx.conf......
  • Keepalived 提高吞吐量、负载均衡 ip_hash、负载均衡 url_hash 与 least_conn、Nginx
    Keepalived提高吞吐量keepalived:设置长连接处理的数量proxy_http_version:设置长连接http版本为1.1proxy_set_header:清除connectionheader信息upstreamtomcats{ #server192.168.1.173:8080max_fails=2fail_timeout=1s; server192.168.1.190:8080; #server......
  • Nginx安装、配置及使用总结
    Nginx的安装、配置及使用总结:Nginx是一个高性能的HTTP及反向代理服务器,也是IMAP/POP3/SMTP代理服务器。在高并发情况下,Nginx突出了它的高性能和稳定性,对比同类服务器技术而言,它是很多国内大中型网站首选的服务器环境。和往常一样,在总结一门新技术时都会先从它的环境配置及使用开始......
  • nginx做文件服务器时使用第三方系统做认证
    我们在项目中做文件下载时,一般会使用nginx做文件下载服务器,但是一旦暴露了下载链接,其他人就随意下载文件,有安全风险。其实我们可以使用Nginx的auth_request模块,nginx在接到下载请求时,将请求转发到我们自己的项目中,我们项目提供一个接口来做认证,认证通过返回nginx200,否则返回......
  • 配置nginx用户认证
    1、安装nginxapt-getupdateapt-getinstall-ynginx2、安装认证工具apt-getinstall-yapache2-utils3、配置认证账密htpasswd-c/etc/nginx/.htpasswdyour_username4、配置nginxvim /etc/nginx/nginx.confserver{listen80;server_nameyour_do......
  • nginx文件服务器根据文件类型判断预览还是下载
    location/file{charsetutf-8;alias/usr/share/nginx/html/files;autoindexoff;autoindex_exact_sizeoff;autoindex_localtimeon;add_header'Access-Control-Allow-Origin''*'always;add_header'Acce......
  • Nginx
    概念:Nginx是高性能的HTTP和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达50,000个并发连接数。 正向代理:需要在客户端配置代理服务器进行指定网站访问。    反向代理:暴露的是代理服务器地址,隐藏了真实服务器IP地址。客户端对代......