1.配置好了Flask + virtualenv +uWSGI,启动uWSGI并调试,网页显示 Internal Server Error

参考:https://www.cnblogs.com/cleven/p/10911099.html

【uwsgi.ini】

[uwsgi]
http=0.0.0.0:8080
pythonpath = /home/ubuntu/myprojects/myflask
wsgi-file=mytest.py #问题出在这里:这里需要绝对路径。。。
callable=app
processes=4
threads=2
master=True
logto=log.txt

【解决方案】

wsgi-file = /home/ubuntu/myprojects/myflask/mytest.py

2.已经配置好了文件:flask.conf,网页打开仍然是Nginx的欢迎页面,为什么?

配置文件构成:

/etc/nginx/nginx.conf

└ /etc/nginx/conf.d/flask.conf

└ /etc/nginx/sites-enable/default

#####
# nginx.conf
#####
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048; include /etc/nginx/mime.types;
default_type application/octet-stream; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on; access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log; gzip on;
gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*; #问题出在这里
} #####
# flask.conf
#####
server {
listen 80;
server_name 49.234.18.49;
root /home/ubuntu/myprojects/myflask;
location / {
include uwsgi_params;
uwsgi_pass localhost:8080;
}
} #####
# default
#####
server {
listen 80 default_server;
listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / {
try_files $uri $uri/ =404;
} }

【原因】

nginx.conf中include了两个地址,其中 /etc/nginx/sites-enabled/* 占用了80端口,导致flask.conf设置的端口失效。

解决方法就是注释掉这一行:# /etc/nginx/sites-enabled/* ;

 

3.启动flask的时候出现ImportError: No module named flask

【原因】

新建虚拟环境的时候出错导致的,排查了一晚上,谨记谨记!

注:神tm虚拟环境中sudo pip install 的时候是安装到实际环境中去的!!!

4.网页部署完成,初次访问速度奇慢无比,如何解决?

[思路]

vue router 懒加载

5.客户端登录的时候返回500 (INTERNAL SERVER ERROR),如何解决?

查看uwsgi的Log如下:

  File "/home/ubuntu/release/myblog_flask_v2/app/models.py", line 104, in get_jwt
return jwt.encode(
AttributeError: module 'jwt' has no attribute 'encode'

【原因】

包装错了啊

错误包:jwt

正确包:pyjwt

emmmm....

[服务器部署] Flask + virtualenv + uWSGI + Nginx 遇到的问题的更多相关文章

  1. CentOS下实现Flask + Virtualenv + uWSGI + Nginx部署

    一.项目简介 在本文中,将一步一步搭建一个简单的Flask + Virtualenv + uWSGI + Nginx 架构的Web服务,可以作为新手的学习也可作为记录备忘. 如果你安装好了环境并有一定 ...

  2. 使用virtualenv, uwsgi, nginx来布署flask

    本文讲述了怎样使用virtualenv, uwsgi, nginx来布署flask的步骤. 升级软件包 运行下面命令,保证你的机器安装了最新的软件包. sudo apt-get update sudo ...

  3. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

  4. CentOS7.4部署Python3+Django+uWSGI+Nginx

    CentOS7.4部署Python3+Django+uWSGI+Nginx http://www.showerlee.com/archives/2590

  5. Python 部署 flask 用uwsgi和nginx

    安装uwsgi nginx 具体方法请百度 1.在项目目录下建立.ini文件 xad_uwsgi.ini [uwsgi] master=true #项目目录 chdir=/root/zhaoyingj ...

  6. centos服务器部署flask项目。

    已安装的环境nginx,python3,mysql,uwsgi,virtualenv 1,创建虚拟环境 virtualenv -p python3 myblog 2,进入虚拟环境 source myb ...

  7. Kestrel 服务器部署多站点问题 (nginx 反向代理)

    Kestrel 作为微软的跨平台 web 服务器,有些地方用的好不是很熟. 作为一款嵌套到 dll 中的进程级 web 服务器,在同一台服务器上部署多站点确实还存在一点问题. 今天采用 nginx 做 ...

  8. 了解django部署(Django + Uwsgi + Nginx)

    首先了解下基本概念: 1 WSGI WSGI:全称是Web Server Gateway Interface,是python应用程序或者框架和web服务器之间的一种接口,被广泛接受.WSGI不是服务器 ...

  9. 项目部署(ubuntu+uwsgi+nginx+supervisor+django)

    一.在开发机上的准备工作 1. 确认项目没有bug. 2.设置`ALLOW_HOST`为你的域名,以及ip地址. 4.设置`DEBUG=False`,避免如果你的网站产生错误,而将错误信息暴漏给用户. ...

随机推荐

  1. 帮助IT业告别内卷,哪项变革最能被寄予厚望?

    近日,中国软件行业协会发布<2021年中国低代码/无代码市场研究报告>,其中提到:我国低代码整体市场规模已达数十亿规模,并将在未来五年保持49.5%的复合增长率.低代码成为整个中国ICT产 ...

  2. abp (.net 5)设置默认请求语言为简体中文

    https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-5.0 默认有3个prov ...

  3. 什么是git?

    目录 一.简介 Git与SVN 区别 一.简介 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核 ...

  4. 2020 NUPCTF pwn题目

    去年的一场比赛,今年来把去年不会做的题目来看一下,只在buu找到三道题,剩下两道好像是内核题,算了,估计找到也不会做. npuctf_2020_level2 bss段上的格式化字符串漏洞的利用. 程序 ...

  5. Numpy.frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数

    Numpy.frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数 不再通过遍历,对数组中的元素进行运算,利用frompyfunc()将计算单个值的函数转化为计算数组中每个元素的函数 ...

  6. Vue3.0是如何变快的

    1.diff算法优化 + Vue2中的虚拟dom是进行全量的对比 https://vue-next-template-explorer.netlify.app/ + Vue3新增了静态标记(Patch ...

  7. k8s daemonset controller源码分析

    daemonset controller分析 daemonset controller简介 daemonset controller是kube-controller-manager组件中众多控制器中的 ...

  8. JS使用html()获取html代码获取不到input、textarea控件填写的值

    我们可以重写一个方法 (function ($) { var oldHTML = $.fn.html; $.fn.formhtml = function () { if (arguments.leng ...

  9. windows串口之虚拟串口和Access port

    关于 本文将介绍自己常用的串口工具,演示环境为Windows. 1. 虚拟串口 1.1 没有那么多的物理串口, 用虚拟串口来凑.需要软件Configure Virtual Serial Port Dr ...

  10. 再谈多线程模型之生产者消费者(基础概念)(c++11实现)

    0.关于 为缩短篇幅,本系列记录如下: 再谈多线程模型之生产者消费者(基础概念)(c++11实现)[本文] 再谈多线程模型之生产者消费者(单一生产者和单一消费者)(c++11实现) 再谈多线程模型之生 ...