David Ingledow
David Ingledow

Reputation: 2095

Setup pretty local development URLs with nginx on Mac OS X

I have a Django server setup that I can access from 127.0.0.1:8000

I have just installed nginx on to Mac OS X Yosemite and can access the 'Welcome to nginx' screen at localhost:80

I want to be able to set up a local development environment on local.ingledow.co.uk but when I visit that URL, it redirects me to my live site: david.ingledow.co.uk.

I did have a wildcard URL forwarder with DNSimple that would redirect like this:

*.ingledow.co.uk > david.ingledow.co.uk

but I have removed that.

I have added this CNAME: local.ingledow.co.uk > 127.0.0.1

This shouldn't affect how I setup my local nginx servers.

So, how do I create an nginx server on Mac that shows my 127.0.0.1:8000 Django project on to a custom domain (local.ingledow.co.uk).

This is my nginx setup:

Default Nginx config at /usr/local/etc/nginx/nginx.conf

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    # INCLUDES

    include /Users/dingledow/etc/nginx/*.conf;

}

ingledow.conf at /Users/dingledow/etc/nginx/ingledow.conf

server {
  listen       80;
  server_name  local.ingledow.co.uk;

  location / {
      root /Users/dingledow/Documents/Work/Ingledow/git/my_site2/;
      index index.html index.htm index.php;
      autoindex on;
  }
}

I'm not sure if Apache is conflicting with nginx? Or whether I've just setup nginx incorrectly?

Upvotes: 0

Views: 3083

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599630

Setting a CNAME with your registrar isn't going to help at all, and you should remove that.

The only way to make this work is to edit your local HOSTS file at /etc/hosts and add a pointer to the localhost:

127.0.0.1. local.ingledow.co.uk   

Then you'll either need to run the dev server on port 80 instead of 8000, or configure nginx to run your site via gunicorn or uwsgi - the documentation tells to how to do that.

Upvotes: 3

Related Questions