Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 144139
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T08:12:22+00:00 2026-05-11T08:12:22+00:00

I would like to run several virtual hosts via nginx, each serving a different

  • 0

I would like to run several virtual hosts via nginx, each serving a different django app via fcgi. Is this possible? If so, does anyone have good resources on where/how to start? The nginx docs seem to be mostly examples, but none of the particular config I’m attempting…

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T08:12:23+00:00Added an answer on May 11, 2026 at 8:12 am

    There have been two pretty good blog posts lately about setting up nginx, but both are using nginx to serve static (or cached) content and apache + mod_wsgi to serve Django. I prefer this myself because mod_wsgi makes process management so much easier than fcgi (among other advantages).

    Anyway, here are the posts:

    • The Django and Ubuntu Intrepid Almanac
    • django, nginx, memcached – the dynamic trio

    EDIT: ok I dug out an old tar file with my nginx + django + virtual host config files from a year ago before I switched to apache + mod_wsgi. This was a development machine, so you’ll want to adjust # of workers, connections, etc.

    nginx.conf:

    user nginx nginx; worker_processes 2;  error_log /var/log/nginx/error_log info;  events {     worker_connections  1024;     use epoll; }  http {     include         /etc/nginx/mime.types; default_type    application/octet-stream;  log_format main             '$remote_addr - $remote_user [$time_local] '     ''$request' $status $bytes_sent '             ''$http_referer' '$http_user_agent' '     ''$gzip_ratio'';  client_header_timeout   3m; client_body_timeout     3m; send_timeout            3m;  connection_pool_size            256; client_header_buffer_size       1k; large_client_header_buffers     4 2k; request_pool_size               4k;  gzip on; gzip_min_length 1100; gzip_buffers    4 32k; gzip_types      text/plain text/html application/x-javascript text/xml text/css;  output_buffers  4 32k; postpone_output 1460;  sendfile        on; tcp_nopush      on; tcp_nodelay     on;  keepalive_timeout       75 20;  ignore_invalid_headers  on;  include vhosts.d/*.conf; } 

    So, the main nginx.conf includes every file in the vhosts.d/ subdirectory. One of my files was for serving PHP on localhost (was probably running phpMyAdmin) like this:

    vhosts.d/00_localhost:

    server {    listen 127.0.0.1:80;   server_name localhost;    access_log /var/log/nginx/localhost.access_log main;   error_log /var/log/nginx/localhost.error_log info;    root /var/www/localhost/htdocs;   index index.php index.html index.htm;      location ~ .php$ {         fastcgi_pass   127.0.0.1:8888;         fastcgi_index  index.php;         fastcgi_param  SCRIPT_FILENAME  /var/www/localhost/htdocs$fastcgi_script_name;         fastcgi_param  QUERY_STRING     $query_string;         fastcgi_param  REQUEST_METHOD   $request_method;         fastcgi_param  CONTENT_TYPE     $content_type;         fastcgi_param  CONTENT_LENGTH   $content_length;   } } 

    And then a local Django development server like this:

    50_django.local:

    server {    listen  80;   server_name django.local;    access_log /var/log/nginx/django.access.log main;   error_log /var/log/nginx/django.error.log info;    root /var/www/django.local;    location ~* ^.+\.(mpg|avi|mp3|swf|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ {     access_log off;     break;   }    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|bmp|js)$ {     expires 30d;     break;   }    location / {     fastcgi_pass unix:/var/www/django.local/server.sock;     include fastcgi.conf;   }    location ^~ /admin/ {     fastcgi_pass unix:/var/www/django.local/server.sock;     include fastcgi.conf;     access_log off;     auth_basic 'Welcome to admin';   } } 

    Finally, each of the virtual servers included a fastcgi.conf for each location.

    fastcgi.conf:

    fastcgi_pass_header Authorization; fastcgi_intercept_errors off;  fastcgi_param PATH_INFO         $fastcgi_script_name; fastcgi_param REQUEST_METHOD    $request_method; fastcgi_param QUERY_STRING      $query_string; fastcgi_param CONTENT_TYPE      $content_type; fastcgi_param CONTENT_LENGTH    $content_length; fastcgi_param SERVER_PORT       $server_port; fastcgi_param SERVER_PROTOCOL   $server_protocol; fastcgi_param SERVER_NAME       $server_name;  fastcgi_param REQUEST_URI       $request_uri; fastcgi_param DOCUMENT_URI      $document_uri; fastcgi_param DOCUMENT_ROOT     $document_root; fastcgi_param SERVER_ADDR       $server_addr; fastcgi_param REMOTE_USER       $remote_user; fastcgi_param REMOTE_ADDR       $remote_addr; fastcgi_param REMOTE_PORT       $remote_port; fastcgi_param SERVER_SOFTWARE   'nginx'; fastcgi_param GATEWAY_INTERFACE 'CGI/1.1';  fastcgi_param UID_SET           $uid_set; fastcgi_param UID_GOT           $uid_got; 

    I’m not sure all of the above were required, but that was another one of the reasons I switched to mod_wsgi… superior support and documentation 🙂

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like to run several receivers that will receive data in different ports,
In my iPhone app I would like to run several queries when the application
I would like to run JSHint on all my Javascript source files but several
I would like to run this script (embed drive list in a site) that
I would like to run a script in production. This script generates a record
I would like to run several commands, and capture all output to a logfile.
I have some initialization code that I would like Django to run once, when
I know this question has been asked several times, but I would like to
I've got some heavyweight process, which does some video processing. I would like run
I would like to run a jar file extracted from my java project to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.