Skip to content

Instantly share code, notes, and snippets.

@dstroot
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dstroot/8817429 to your computer and use it in GitHub Desktop.
Save dstroot/8817429 to your computer and use it in GitHub Desktop.
Configuration for nginx in front of node
# Example 1
# -------------------------------------------------
# nginx config file for nodejs
#
# you can put nginx in front of node for two good reasons:
# 1) To take some of the load off nodejs for serving
# anything static.
# 2) To run multiple nodjs sites on one server
# domain1:80 -|->nginx-|-> nodejs:3000
# domain2:80 -| |-> nodejs:4000
# -------------------------------------------------
# Node pet_project on Port 3000
upstream pet_project {
server localhost:3000;
}
server {
listen 80;
server_name pet-project.myhost;
location / {
alias /opt/demo/pet-project/public/;
try_files $uri @pet-project;
}
location @pet-project {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $proxy_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://pet_project;
}
}
# Example 2
# -------------------------------------------------
# nginx config file for nodejs
# -------------------------------------------------
# Node Express Staging on Port 3000
upstream staging{
server 127.0.0.1:3000;
}
# NGINX Server Instance
server {
listen 0.0.0.0:80;
server_name staging.example.com;
access_log /var/log/nginx/staging.example.log;
# Gzip Compression
gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
# Proxy to the Node instance
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://staging.example.com;
proxy_redirect off;
# If you want nginx (>= 1.3.13) to handle websocket requests as well
# add the following lines in the location / section:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment