hi I need to deploy a django application on nginx . I install nginx and python-flup in my fedora I try this guide but nginx can't read my static file . in my project dir I used this command to run fastcgi:
[nima@ca005 bank]$ python ./manage.py runfcgi host=127.0.0.1 port=8080
[nima@ca005 bank]$
and this is my sample_project.conf in /etc/nginx/sites-enable/ :
server {
listen 80;
server_name 192.168.16.161;
access_log /var/log/nginx/sample_project.access.log;
error_log /var/log/nginx/sample_project.error.log;
# https://docs.djangoproject.com/en/dev/howto/static-files/#serving-static-files-in-production
location /static/ { # STATIC_URL
alias /home/nima/workspace/bank/media/; # STATIC_ROOT
expires 30d;
}
location /media/ { # MEDIA_URL
alias /home/nima/workspace/bank/meli/static/; # MEDIA_ROOT
expires 30d;
}
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8080;
fastcgi_split_path_info ^()(.*)$;
}
}
nginx.conf:
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# Load config files from the /etc/nginx/conf.d directory
# The default server is in conf.d/default.conf
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enable/*;
}
what should I do?!
Firstly, if you chose to use nginx, then use gunicorn
, its the best option out there, and if you so wish to use Apache, then you use mod_wsgi
.
This will show you how to use gunicorn. Just to tell you how well it serves, gunicorn is used by Instagram, because they claim that it gives them better performance.
Setting up gunicorn
is very simple and easy to do, and this tutorial here, gives you all the things necessary to make it happen very quickly.
This is their website.
Try this link using fastcgi mode
Or this link using uwsgi mode
Edit: fcgi mode is deprecated in django and will be removed. uwsgi is the favourable mode. One of the many references, check this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With