【发布时间】:2018-11-20 11:04:50
【问题描述】:
在将 Flask 作为实时网络服务器运行了几天后,我了解到这不是一件聪明的事情:在几个小时不活动后,服务器死机了,即使我使用了最简单的设置(一页,没有 python 代码)。 谷歌搜索我发现 Flask 并不打算用作生产服务器,一个好的做法是将它与例如结合起来。 Nginx 和 uWSGI。所以我跟着 this guide 似乎运行良好。 但是现在我不知道如何重新启动、刷新或重新加载发布我添加到内容或 python 代码中的东西所需的一切。而不是 Flask 服务器,它会在保存文件后自动重新加载(在调试模式下),我现在运行了三个引擎。终端重启nginx不行,我已经试过了。
请问有人能帮帮这个菜鸟吗?
TIA!!
uwsgi_conf.ini:
=============================
[uwsgi]
chdir = /home/pi/sampleApp
module = sample_app:first_app
master = true
processes = 1
threads = 2
uid = www-data
gid = www-data
socket = /tmp/sample_app.sock
chmod-socket = 664
vacuum = true
die-on-term = true
=============================
nginx.conf:
=============================
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
=============================
sample_app_proxy:
=============================
server {
listen 80;
server_name localhost;
location / { try_files $uri @app; }
location @app {
include uwsgi_params;
uwsgi_pass unix:/tmp/sample_app.sock;
}
}
=============================
【问题讨论】:
-
使用 uWSGI 设置 Nginx 可能有不同的方法。可以帮助的第一件事是显示您的 Nginx 虚拟主机配置。 uWSGI 配置文件也不错。
-
添加了两个文件,我希望这些是你要求的......
-
这里缺少一些东西...你在 nginx/sites-available 中有一个专用的烧瓶站点 vhost 文件吗?你也可以添加那个。
-
我在 /sites-available 中找到了一个名为“sample_app_proxy”的文件并将其添加到上面。顺便说一句:如果您认为这种设置 Nginx/uWSGI 的方法很糟糕,我将不胜感激指向最佳实践的指针。尝试在这里学习,当我的第一步走错方向时,我会迷失方向;-)
-
我想我可以提供至少 3 种不同的方式来实现你想要的。最后一个问题——你如何启动你的应用程序?
uwsgi --ini uwsgi_conf.ini之类的东西?