【发布时间】:2020-04-18 17:00:30
【问题描述】:
例如,在我的 my_application/settings.py 文件中,我有几个 print 语句,因此:
print( 'running settings.py: ALLOWED_HOSTS: ' )
print( '\n'.join( ALLOWED_HOSTS ) )
...这个输出实际上在运行 nginx 和 Gunicorn 的远程服务器上的什么地方?
NB 我知道,据我所知,在任何地方打印ALLOWED_HOSTS 可能是一个严重的安全漏洞。这只是一个例子:我正处于学习/实验阶段。
在 AKX 回答后编辑
我发现无法将stdout 定向到journalctl,即使使用-R 开关也是如此。
...经过多次实验和挫折以及莫名其妙的502错误,我终于找到了一种方法:我的systemd配置文件现在看起来像这样:
[Unit]
Description=Gunicorn server for mysite.xyz
[Service]
Restart=on-failure
User=mike
WorkingDirectory=/home/mike/sites/mysite.xyz
EnvironmentFile=/home/mike/sites/mysite.xyz/.env
ExecStart=/home/mike/sites/mysite.xyz/virtualenv/bin/gunicorn \
--bind unix:/tmp/mysite.xyz.socket \
-R \
--capture-output \
--error-logfile /home/mike/gunicorn-error.log \
superlists.wsgi:application
[Install]
WantedBy=multi-user.target
...确实,我发现包含-R 开关是不够的:您似乎还必须包含--capture-output 开关和--error-logfile 开关(注意我不清楚是否有如果您未设置该开关,则为错误输出的默认目标)。
使用上面的配置文件,settings.py 中的stdout 进入文件~/gunicorn-error.log。万岁。
【问题讨论】:
标签: django nginx stdout gunicorn