如何使用nginx和Gunicorn使我的Python-Flask网站24 * 7可用



如何配置枪角兽以确保我的python烧瓶网站24 * 7可用?我面临的问题是:一旦我杀死了我的终端窗口,该网站就无法访问了。

我正在使用 rhel7.6 来托管一个使用 python-flask 的网站。我已经将nginx配置为Web服务器,将gunicorn配置为应用程序服务器。

.如果有人可以帮助我使用/配置 gunicorn 以确保我的网站 24*7 全天候可用,我将不胜感激。

请有一些我的代码,如下所示:

[root@syed-dashboard-4 ~]# pwd
/root
[root@syed-dashboard-4 ~]#
[root@syed-dashboard-4 ~]# cat hello.py
#!/usr/bin/python
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
        return "Hello magentabox!"
#if __name__ == "__main__":
#        app.run(host='10.145.29.23',port=5000)
[root@syed-dashboard-4 ~]#
[root@syed-dashboard-4 ~]# gunicorn hello:app
[2019-07-17 10:34:11 +0000] [9346] [INFO] Starting gunicorn 19.9.0
[2019-07-17 10:34:11 +0000] [9346] [INFO] Listening at: http://127.0.0.1:8000 (9346)
[2019-07-17 10:34:11 +0000] [9346] [INFO] Using worker: sync
[2019-07-17 10:34:11 +0000] [9351] [INFO] Booting worker with pid: 9351

我对 Web 开发很陌生,正如我一关闭终端就提到的,该网站不再可访问。如果这有助于解决我的问题,我也可以共享nginx配置日志。多谢。

您可以使用主管。这是24 * 7全天候运行服务器的专业方式。请在您的主管配置中添加以下文件以运行。

[program:your_project_name]
command=/home/virtualenvpath/your_env/bin/gunicorn --log-level debug run_apiengine:main_app --bind 0.0.0.0:5006 --workers 5 --worker-class gevent
stdout_logfile=/home/your_path_to_log/supervisor_stdout.log
stderr_logfile=/home/your_path_to_log/supervisor_stderr.log
user=your_user
autostart=true
autorestart=true
environment=PYTHONPATH="$PYTHONPATH:/home/path_to_your_project";OAUTHLIB_INSECURE_TRANSPORT='1';

在主管中配置此功能,它将运行 24*7。每当您的计算机重新启动时,它都会自动启动。

在 Linux 上,您可以在启动服务器后分离的 tmux 会话中启动应用程序。

# Create a new tmux session
tmux new -s server
# Start your gunicorn server
cd /path/to/app
gunicorn hello:app
# Detach the current tmux session using Ctrl - B + D

您可以关闭终端,服务器仍将运行。

最新更新