Nginx Gunicorn Flask SupervisorCtl - 进入的网站显示错误的网站

时间:2017-08-18 21:02:48

标签: python nginx flask gunicorn

我有一个运行Nginx Gunicorn Flask SupervisorCtl的网络服务器但是,在我添加了supervisorctl配置之后:

[program:websitecom]
command = gunicorn app:app -b localhost:8003
directory = /home/www/flask-deploy/websitecom
user = jd
autostart=true
autorestart=true
stderr_logfile=/var/log/standard_error_websitecom
stdout_logfile=/var/log=standard_out_websitecom

和nginx config:

server {
   server_name website.com;
   listen 80;
   location / {
       proxy_pass http://localhost:8000;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
   }
   location /static {
       alias  /home/www/flask-deploy/websitecom/;
   }
}

app.py的烧瓶配置:

from flask import Flask, render_template, request
app = Flask(__name__)
app.secret_key = 'asecret'

@app.route("/")
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

问题是,它显示了在服务器上托管的先前配置的站点,而不是新域。

有人可以帮忙吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

发生这种情况时,您需要检查一些事情。数字1,更新NGINX虚拟主机后,你运行了吗?

>>> sudo service nginx reload 
>>> sudo service nginx restart

如果这不是问题,您需要做的下一件事就是删除所有可能告诉您的浏览器指向您的IP地址错误的域的缓存,多个虚拟主机共享相同的IP。

您还可以检查以确保您的virtualhost已添加到您的sites_enabled文件夹和您的网站可用文件夹中。

最后,如果这不是NGINX配置不正确,那么如果正确设置了另一个应用程序,第一个正确配置的站点将显示在您的域中。例如,如果你的网站运行良好...你添加了网站2并进入网址查看,但不是网站2出现,你得到网站1可能是网站2没有正确配置,默认为website1。

答案 1 :(得分:0)

我注意到你的Nginx服务器块正在代理端口8000:

proxy_pass http://localhost:8000;

虽然您的Flask应用程序在端口8003上运行:

command = gunicorn app:app -b localhost:8003

我说你还有一个在端口8000上运行的Flask应用程序,这是显示的内容吗?