【问题标题】:Flask / uWSGI / CentOS - updates do not workFlask / uWSGI / CentOS - 更新不起作用
【发布时间】:2018-12-20 00:42:11
【问题描述】:

说实话,在服务器和维护方面我是个菜鸟。

我完全按照以下指南创建了我的第一个“Hello There”页面,到目前为止已经成功。

https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-centos-7

但是在尝试通过在我的应用程序中插入更多代码并保存脚本来更新我的主页后,我的浏览器中的服务器输出仍然保持不变的旧“你好”。

我在函数式编程(数学)和数据库处理方面做得更好,但由于我必须为我的团队同事提供一些工具,我想到了一个快速主页。不幸的是,设置 python hp 比预期的要难。

提前谢谢你 斯蒂芬

编辑: 我真的按照上面的链接 1 到 1。这里是我的代码:

TAOWeb.py

from flask import Flask, render_template

application = Flask(__name__)

@application.route("/")
def hello():
return "<h style='color:green'> HELLO ASDF! </h1>"


if __name__ == "__main__":
application.run(host='0.0.0.0')

TAOWeb.ini

[uwsgi]
module = wsgi

master = true
processes = 5

socket = TAOWeb.sock
chmod-socket = 660
vacuum = true

die-on-term = true

wsgi.py

from TAOWeb import application

if __name__ == "__main__":
    application.run()

还有/etc/systemd/system/TAOWeb.service

[Unit]
Description=uWSGI instance to serve TAOWeb
After=network.target

[Service]
User=tao
Group=nginx
WorkingDirectory=/home/tao/TAOWeb
Environment="PATH=/home/tao/TAOWeb/env/bin"
ExecStart=/home/tao/TAOWeb/env/bin/uwsgi --ini TAOWeb.ini

[Install]
WantedBy=multi-user.target

最后但并非最不重要的 nginx 配置:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

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;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
    listen 80;
    server_name 185.164.5.211;

location / {
    include uwsgi_params;
    uwsgi_pass unix:/home/tao/TAOWeb/TAOWeb.sock;
    }

}

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
   }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

这是标准配置,仅包含第一个服务器部分。

这有帮助吗?

最好的 斯蒂芬

【问题讨论】:

  • 没有您的代码,我们无法为您提供帮助。
  • 您是否尝试在运行 uWSGI 服务器时添加 --py-autoreload=1 选项,例如uwsgi --socket 0.0.0.0:8000 --protocol=http -w wsgi --py-autoreload=1
  • 您是否在再次访问该页面之前重新加载了 Flask?如果是这样,也许您的浏览器正在缓存该页面。尝试使用 Ctrl-R 重新加载或打开“私人窗口”以确保没有加载页面的缓存版本。
  • 您在&lt;h 中有错字,应该是&lt;h1。顺便说一句,您定义了两个服务器指令,都用于侦听端口 80。您应该删除第二个。

标签: python nginx centos uwsgi wsgi


【解决方案1】:

如果你确定你的代码是正确的并且正在使用谷歌浏览器尝试清除你的缓存

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,尝试使用新的浏览器,它会为您解决问题。 我 - 我的 Chrome 有问题,它在清除缓存后工作,但同样的情况不会发生在 FireFox 上,因为 FireFox 就像一个魅力。 您也可以尝试其他浏览器以防万一。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 2015-07-24
      • 2020-12-23
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 2020-05-15
      • 1970-01-01
      相关资源
      最近更新 更多