flask uWSGI nginx

wsgi (Web Server Gateway Interface)web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。
uwsgi 是一种传输协议,用于定义传输信息的类型。
uWSGI 是实现了uwsgi协议WSGI的web服务器。

python环境
安装环境管理

pip  install  virtualenvwrapper

加载相关环境配置

which virtualenvwrapper.sh
# 查找到后,用source进行加载
source /usr/local/bin/virtualenvwrapper.sh

创建环境

mkvirtualenv  envname

查看环境

lsvirtualenv 

进入环境

workon envname

退出环境

deactivatec  

删除环境

rmvirtualenv envname

环境中安装相关包

pip install uwsgi flask

uWSGI
测试

uwsgi --version

报错1

uwsgi: error while loading shared libraries: libssl.so.1.1
uwsgi: error while loading shared libraries: libcrypto.so.1.1
uwsgi loading shared libraries:libicui18n.so.58
## ldd uwsgi 查看缺少哪些动态文件,然后将对应anaconda3/lib 下的文件cp到对应 /lib64下解决

报错2

uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found_zan110120
## 处理办法查看/lib64下libstdc++.so.6的指向是否与anaconda3/lib下的libstdc++.so.6指向是否一致,若不一致,重新在lib64生成对应软链接[ ln -s 指向的文件  链接名称]

uwsgi.ini文件编写

[uwsgi]
#配合nginx使用
socket = 127.0.0.1:8000
# 如果是单独使用就使用
# http = ip:port 
# 配置中如果使用socket,直接访问时就会报invalid request block size: 21327 (max 4096)...skip
chdir =  自己项目路径
#wsgi文件 run就是flask启动文件去掉后缀名 app是run.py里面的Flask对象 
module = run:app
#指定工作进程
processes = 4
#主进程
master = true
#每个工作进程有2个线程
threads = 2
#指的后台启动 日志输出的地方
daemonize = uwsgi.log
#保存主进程的进程号
pidfile = uwsgi.pid

启动参数

uwsgi --ini uwsgi.ini
uwsgi -d --ini uwsgi.ini
# 后台启动,如果有生成--ini文件,使用rm ./--ini删除
pkill -f uwsgi -9
# 停止
uwsgi --stop uwsgi.pid
# 停止
uwsgi --reload uwsgi.pid 
# 重启

nginx

新建一个配置文件xx.conf

server {
	# 监听端口
    listen 80;
    # 监听ip 换成服务器公网IP
    server_name 127.0.0.1;
 
	#动态请求
	location / {
	  include uwsgi_params;
	  uwsgi_pass 127.0.0.1:8000;
	}
	#静态请求
	location /static {
		alias /xxxxt/static;

	}
}

也可以和原已经的配置文件共用一个server配置文件,只添加location /xx1,同理flask中的请求也添加到对应的 /xx1

提示nginx: [warn] conflicting server name “localhost” on 0.0.0.0:80, ignored
代表配置文件中重复绑定了server name,将重复清理即可。

nginx -s reload

你可能感兴趣的:(Python,spring,boot,spring,java)