/ Nginx

Setting up NGINX on Mac OSX

Heavily borrowed from: Nginx configuration for Mac OS X with Homebrew, using sites-enabled directory.

Install nginx

brew install nginx
cd /usr/local/etc/nginx/

git clone git@bitbucket.org:fountainhead/nginx-sites-available sites-available

wget "https://gist.githubusercontent.com/jimothyGator/5436538/raw/9e0b6674a6b8c50589ea4d811b845545a776ca16/default-ssl.conf"
wget "https://gist.githubusercontent.com/jimothyGator/5436538/raw/9e0b6674a6b8c50589ea4d811b845545a776ca16/default.conf"

mkdir -p /usr/local/etc/nginx/sites-enabled
cd /usr/local/etc/nginx/sites-enabled


ln -s ../sites-available/default.conf
ln -s ../sites-available/default-ssl.conf

cd /usr/local/etc/nginx/
rm nginx.conf
wget "https://gist.githubusercontent.com/jimothyGator/5436538/raw/9e0b6674a6b8c50589ea4d811b845545a776ca16/nginx.conf"

# Create log directory
sudo mkdir -p /Library/Logs/nginx/

For enabling a site:

cd /usr/local/etc/nginx/sites-enabled
ln -s ../sites-available/santoshsrinivas.dvp

Start nginx:

# Test out nginx
sudo nginx -t

sudo nginx -s stop

sudo nginx -s stop && sudo nginx

# Start nginx
sudo nginx -s reload

Update /etc/hosts file:

127.0.0.1 xeon.santoshsrinivas.dvp

My site config file:

server {
    server_name xeon.santoshsrinivas.dvp; # Replace with your domain
    access_log /var/log/xeon_ss_dvp_acc.log;
    error_log /var/log/shiny_ss_dvp_err.log;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}

My nginx.conf

#user  nobody;
worker_processes  1;

error_log  /Library/Logs/nginx/error.log;

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  /Library/Logs/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    index index.html index.php;
    
    upstream www-upstream-pool{
        server unix:/tmp/php-fpm.sock;
    }

    include /usr/local/etc/nginx/sites-enabled/*; 
}

UPDATES:

Despite following the above instructions, I was again caught with error issues while setting up my new Catalina OS.

The resolution steps after troubleshooting the problems were:

Make sure the last line in the above nginx.conf is updated to:

include /usr/local/etc/nginx/sites-enabled/*.*; 

Note ... then *.*

Next, this was a REAL issue, I did everything perfectly but STILL the enabled was not getting picked up!!!

As mentioned here (https://stackoverflow.com/a/53528685), I needed to add listen [::]:80; to bind the site to IPv6 and my PC was on an IPv6 connection

Below is the exact site config:

server {
    server_name www.themescope.dvp; # Replace with your domain

    listen 80;
    listen [::]:80;

    access_log /var/log/themescope_dvp_acc.log;
    error_log /var/log/themescope_dvp_err.log;

    location / {
        proxy_pass http://127.0.0.1:8050;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}

Also, not to forget .. my /etc/hosts/ file is:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
127.0.0.1 themescope.dvp
127.0.0.1 www.themescope.dvp

255.255.255.255	broadcasthost
::1             localhost