最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

flask - How to add NGINX to a Python app on Heroku? - Stack Overflow

programmeradmin1浏览0评论

I am trying to get nginx working on my flask app with hosting on heroku. My app is using flask-socketio. I'm getting this error app[web.1]: nginx: [emerg] bind() to 0.0.0.0:27318 failed (98: Address already in use). I tried using a single '&' in the Procfile and it loops this error in the console app[web.1]: buildpack=nginx at=app-initialization

Here are my files.

nginx.conf

worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
sendfile on;

server_tokens off;  # Hide Nginx version
more_set_headers "Server: Secure";  # Override server header

upstream flask_backend {
    server 127.0.0.1:5000;  # Ensure Gunicorn is running on this port
}

server {
    listen 8080;

    location / {
        proxy_pass http://flask_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_hide_header X-Powered-By;
        proxy_hide_header Server;
        more_clear_headers 'X-Powered-By' 'Server';

        proxy_buffering off;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}

}

Procfile

web: bin/start-nginx && gunicorn -c config/gunicorn.conf.py -k 
eventlet -w 1 app:app --bind 0.0.0.0:$PORT

app.py

if __name__ == '__main__':
   port = int(os.environ.get('PORT', 5000))  # Use Heroku-assigned port
   socketio.run(app, host="0.0.0.0", port=port)

gunicorn.conf.py

import os
import multiprocessing

bind = "unix:/tmp/nginx.socket"
workers = multiprocessing.cpu_count() * 2 + 1

def on_starting(server):
   open("/tmp/app-initialized", "w").close()

Is there a way around this?

发布评论

评论列表(0)

  1. 暂无评论