我有一个运行良好的设置,使用git将本地开发更改推送到Digital Ocean上的repo,然后使用post receive钩子将主分支发送到/var/www/MYAPPNAME/。我还通过supervisor使用gunicorn与nginx一起运行站点——现在我添加了一个git开发分支,它被发送到/var/www/我的名字/appdev我似乎有问题(可能是巧合,也可能是更新supervisor/nginx配置时引入的问题)。在
如果我对Flask app template/app/templates中的HTML做一个小的更新/索引.html或者/基本.html对于我的应用程序/站点的dev版本,我无法让站点显示更改。dev子域似乎指向生产应用程序,而不是单独的dev分支和相关的代码文件夹。我可以判断代码更改会进入正确的文件夹(/var/www/开发人员MYAPPNAME)但是,当我像运行“sudo supervisorctl reload”那样运行“sudo supervisorctl reload”以获取生产文件夹中的代码更改以在实时生产站点上刷新时,HTML中更新的文本不会显示。在
我试过了:
在我的应用程序名.py文件(站点的开发和生产版本都相同):
from app import app
/app/init.py文件(两者都相同):
from flask import Flask
app = Flask(__name__)
from app import routes
/应用程序/routes.py(两个站点相同):
^{pr2}$只包含/staticbootstrap.css以及引导程序.js在
/app/templates包含基本.html以及索引.html延伸基本.html-在我将第二个/dev站点引入服务器之前,对这两个站点的更改都运行得很好,但是现在在developbranchdev站点上没有被识别出来。在
.env文件(我也将其复制到.flaskenv文件):
FLASK_APP=MYAPPNAME.py
TEMPLATES_AUTO_RELOAD=True
DEBUG=True
这是我的/etc/supervisor/conf.d/开发人员MYAPPNAME.conf(如果这里出了什么问题,不会感到震惊):
[program:dev.MYAPPNAME]
command=/var/www/dev.MYAPPNAME/venv/bin/gunicorn -b localhost:8001 -w 4 MYAPPNAME:app
directory=/var/www/dev.MYAPPNAME
user=MYUSERNAME
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
以及我的非dev/etc/supervisor/conf.d/我的appname.conf公司名称:
[program:MYAPPNAME]
command=/var/www/MYAPPNAME/venv/bin/gunicorn -b localhost:8000 -w 4 MYAPPNAME:app
directory=/var/www/MYAPPNAME
user=MYUSERNAME
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
开发站点的Nginx配置:/etc/Nginx/sites available/开发人员MYAPPNAME(如果这两个文件有问题,也不会感到震惊):
server {
listen 80;
server_name dev.MYAPPNAME;
root /var/www/dev.MYAPPNAME;
access_log /var/log/dev.MYAPPNAME_access.log;
error_log /var/log/dev.MYAPPNAME_error.log;
location / {
proxy_pass http://localhost:8001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /var/www/dev.MYAPPNAME/app/static;
expires 30d;
}
}
非开发站点的Nginx配置:/etc/Nginx/sites available/MYAPPNAME:
server {
listen 80;
server_name MYAPPNAME;
root /var/www/MYAPPNAME;
access_log /var/log/MYAPPNAME_access.log;
error_log /var/log/MYAPPNAME_error.log;
location / {
proxy_pass http://localhost:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /var/www/MYAPPNAME/app/static;
expires 30d;
}
}
我很感激能给我的任何指示,我可以检查的其他事情,明显的错误等等。谢谢!在
结果发现这是Nginx的问题,我没有在服务器名称中包含域后缀,因此它根本看不到dev站点,而是从dev.MYAPPNAME.MYDOMAINSUFFIX指向的URLMYAPPNAME.MYDOMAINSUFFIX. 我更新了配置文件如下,重新启动了Nginx和Supervisor,现在它开始工作了:
相关问题 更多 >
编程相关推荐