Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Migrating from Apache to Nginx with the Edison Build System

DZone's Guide to

Migrating from Apache to Nginx with the Edison Build System

Free Resource

Download the blueprint that can take a company of any maturity level all the way up to enterprise-scale continuous delivery using a combination of Automic Release Automation, Automic’s 20+ years of business automation experience, and the proven tools and practices the company is already leveraging.

I’ve recently decided to take the plunge and move from Apache and Mod_WSGI to Nginx and FastCGI – I was amazed at how simple it was!

To get Edison up and running under Nginx as a fast-cgi Deamon, you just need to do the following:

Install the required packages from EPEL:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

yum update

yum install nginx pypthon-flup

The configure a new server (we’ll setup a fake dns hostname of ‘edison.localdomain’) in /etc/nginx/conf.d/edison as follows:

    server {
    # setup the server name
    server_name edison.localdomain;

    # make sure we’re only listening on HTTPS
    listen 443;

    ssl                  on;
    ssl_certificate      /path/to/ssl/edison.localdomain.crt;
    ssl_certificate_key  /path/to/ssl/edison.localdomain.key;

    # Point to the document root
    root /var/djangosites/edison/;

    # setup logging
    error_log /var/log/nginx/edison.localdomain.error;
    access_log /var/log/nginx/edison.localdomain.access;

    # Setup the alias for the Media Directory
    location /media {
    alias /var/djangosites/edison/media/;
    }

    # setup the fastcgi settings
    location / {
    # host and port to fastcgi server
    fastcgi_pass 127.0.0.1:8801;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param SERVER_NAME $server_name;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_PROTOCOL $server_protocol;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param REMOTE_USER       $remote_user;
    fastcgi_param REMOTE_ADDR       $remote_addr;
    fastcgi_param REMOTE_PORT       $remote_port;
    fastcgi_pass_header Authorization;
    fastcgi_intercept_errors off;
    }
    }

Once that’s in place, restart NGinx and then cd to the Edison App dir and run the following command:

./manage.py runfcgi method=threaded host=127.0.0.1 port=8801

This will start the fast-cgi python script.

Now you can visit https://edison.localdomain/ (assuming it is setup in your DNS!) and you should be able to browse Edison without any issue.

Download the ‘Practical Blueprint to Continuous Delivery’ to learn how Automic Release Automation can help you begin or continue your company’s digital transformation.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}