Hi,
I deployed a Flask app on an Ubuntu 18.04 VPS using Gunicorn and Nginx as the driving servers. I followed this official tutorial for help. I am using a separate server block for my domain on Nginx and not using the default.
The website loads just fine on my domain. However, there are two issues –
Interestingly, none of these issues exist when I run the Gunicorn instance on localserver (port 5000).
Details about the infinitely reloading route are –
It’s a separate blueprint
for displaying and browsing tags
that looks like this - @tags_bp.route('/<language>/tags/<selected_tags>', methods=['GET'])
.
This route renders a template with some responses.
There’s an allied route - @tags_bp.route('/<language>/tags/<selected_tags>/<variable_ID>', methods=['GET'])
- that only returns a JSON object response to AJAX calls made by the JavaScript that then gets rendered on the page.
I am using the default .serivce
and location block as shown below.
/etc/systemd/system/myproject.service
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=sammy
Group=www-data
WorkingDirectory=/home/<USER>/myproject
Environment="PATH=/home/<USER>/myproject/myprojectenv/bin"
ExecStart=/home/<USER>/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
/etc/nginx/sites-available/myproject
server {
listen 80;
server_name your_domain www.your_domain;
location / {
include proxy_params;
proxy_pass http://unix:/home/<USER>/myproject/myproject.sock;
}
}
I am suspecting the error is occurring somewhere between Nginx and Gunicorn. I have tried modifying the proxy_headers
using this configuration on the Flask documentation but that didn’t help either.
Would greatly appreciate any help to fix this!
Cheers.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!