Last active
December 27, 2015 05:39
-
-
Save ruo91/7275431 to your computer and use it in GitHub Desktop.
example - nginx.conf generator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- gem | |
[root@dev ~]# gem install nginx_config_generator | |
example yml 생성 | |
[root@dev ~]# generate_nginx_config --example > nginx.yml | |
nginx.conf 생성 | |
[root@dev ~]# generate_nginx_config nginx.yml nginx.conf | |
=> Wrote nginx.conf successfully. | |
이미 nginx.conf파일이 존재하는 경우 뒤에 -y 옵션을 사용하면 overwrite 할수 있습니다. | |
[root@dev ~]# generate_nginx_config nginx.yml nginx.conf -y | |
=> Wrote nginx.conf successfully. | |
- github | |
[root@dev ~]# git clone https://github.com/defunkt/nginx_config_generator.git | |
[root@dev ~]# cd nginx_config_generator | |
[root@dev ~]# cp lib/config.yml.example lib/nginx.yml | |
[root@dev ~]# bin/generate_nginx_config lib/nginx.yml nginx.conf | |
=> Wrote nginx.conf successfully. | |
- generator로 생성한 nginx.conf 확인 | |
[root@dev ~]# cat nginx.conf | |
## http://brainspl.at/nginx.conf.txt | |
#user and group to run as | |
user nginx nginx; | |
# number of nginx workers | |
worker_processes 2; | |
# pid of nginx master process | |
pid logs/nginx.pid; | |
# Number of worker connections. 1024 is a good default | |
events { | |
worker_connections 1024; | |
} | |
# start the http module where we config http access. | |
http { | |
# pull in mime-types. You can break out your config | |
# into as many include's as you want to make it cleaner | |
include conf/mime.types; | |
# set a default type for the rare situation that | |
# nothing matches from the mimie-type include | |
default_type application/octet-stream; | |
# configure log format | |
log_format main '$remote_addr - $remote_user [$time_local] $status ' | |
'"$request" $body_bytes_sent "$http_referer" ' | |
'"$http_user_agent" "http_x_forwarded_for"'; | |
# main access log | |
access_log logs/access.log main; | |
# main error log | |
error_log logs/error.log debug; | |
#error_log logs/error.log debug_http; | |
# no sendfile on OSX | |
sendfile on; | |
# These are good default values. | |
tcp_nopush on; | |
tcp_nodelay off; | |
# output compression saves bandwidth | |
gzip on; | |
gzip_http_version 1.0; | |
gzip_comp_level 2; | |
gzip_proxied any; | |
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml | |
application/xml+rss text/javascript; | |
# this is where you define your mongrel clusters. | |
# you need one of these blocks for each cluster | |
# and each one needs its own name to refer to it later. | |
upstream cheat { | |
server 127.0.0.1:8020; | |
} | |
upstream trac { | |
server 127.0.0.1:9000; | |
} | |
upstream subtlety { | |
server 127.0.0.1:8021; | |
} | |
upstream errtheblog { | |
fair; | |
server 127.0.0.1:8000; | |
server 127.0.0.1:8001; | |
} | |
upstream sfruby { | |
server 127.0.0.1:8030; | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
# port to listen on. Can also be set to an IP:PORT | |
listen 80; | |
# sets the domain[s] that this vhost server requests for | |
server_name qa.famupdate.com; | |
# doc root | |
root /home/builder/site; | |
# vhost specific access log | |
access_log logs/qa.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
location / { | |
auth_basic "qa requires credentials."; | |
auth_basic_user_file /home/builder/conf/htpasswd; | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
# port to listen on. Can also be set to an IP:PORT | |
listen 80; | |
# sets the domain[s] that this vhost server requests for | |
server_name cheat.errtheblog.com; | |
# doc root | |
root /home/chris/sites/cheat; | |
# vhost specific access log | |
access_log logs/cheat.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
location / { | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
if (!-f $request_filename) { | |
proxy_pass http://cheat; | |
break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
# port to listen on. Can also be set to an IP:PORT | |
listen 80; | |
# sets the domain[s] that this vhost server requests for | |
server_name require.errtheblog.com; | |
# doc root | |
root /home/chris/sites/trac; | |
# vhost specific access log | |
access_log logs/trac.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
location / { | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
if (!-f $request_filename) { | |
proxy_pass http://trac; | |
break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
# port to listen on. Can also be set to an IP:PORT | |
listen 80; | |
# sets the domain[s] that this vhost server requests for | |
server_name subtlety.errtheblog.com; | |
# doc root | |
root /home/chris/sites/subtlety; | |
# vhost specific access log | |
access_log logs/subtlety.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
location / { | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
if (!-f $request_filename) { | |
proxy_pass http://subtlety; | |
break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
# port to listen on. Can also be set to an IP:PORT | |
listen 80; | |
# sets the domain[s] that this vhost server requests for | |
server_name errtheblog.com www.errtheblog.com; | |
# doc root | |
root /home/chris/sites/errtheblog/current/public; | |
# vhost specific access log | |
access_log logs/errtheblog.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
if ($host ~* "www") { | |
rewrite ^(.*)$ http://errtheblog.com$1 permanent; | |
break; | |
} | |
location / { | |
rewrite ^/feed/feedburner http://feeds.feedburner.com/errtheblog break; | |
rewrite ^/feed/atom.xml http://feeds.feedburner.com/errtheblog break; | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
if (!-f $request_filename) { | |
proxy_pass http://errtheblog; | |
break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
# port to listen on. Can also be set to an IP:PORT | |
listen 80; | |
# sets the domain[s] that this vhost server requests for | |
server_name sfruby.org www.sfruby.org; | |
# doc root | |
root /home/chris/sites/sfruby/current/public; | |
# vhost specific access log | |
access_log logs/sfruby.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
if ($host ~* "www") { | |
rewrite ^(.*)$ http://sfruby.org$1 permanent; | |
break; | |
} | |
location / { | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
if (!-f $request_filename) { | |
proxy_pass http://sfruby; | |
break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
# the server directive is nginx's virtual host directive. | |
server { | |
listen 10.10.10.1:443; | |
ssl on; | |
# path to your certificate | |
ssl_certificate /path/to/err.crt; | |
# path to your ssl key | |
ssl_certificate_key /path/to/err.key; | |
# doc root | |
root /home/chris/sites/errtheblog/current/public; | |
# vhost specific access log | |
access_log logs/errtheblog.access.log main; | |
#Set the max size for file uploads to 50Mb | |
client_max_body_size 50M; | |
# this rewrites all the requests to the maintenance.html | |
# page if it exists in the doc root. This is for capistrano's | |
# disable web task | |
if (-f $document_root/maintenance.html){ | |
rewrite ^(.*)$ /maintenance.html last; | |
break; | |
} | |
if ($host ~* "www") { | |
rewrite ^(.*)$ http://errtheblog.com$1 permanent; | |
break; | |
} | |
location / { | |
rewrite ^/feed/feedburner http://feeds.feedburner.com/errtheblog break; | |
rewrite ^/feed/atom.xml http://feeds.feedburner.com/errtheblog break; | |
# needed to forward user's IP address to rails | |
proxy_set_header X-Real-IP $remote_addr; | |
# needed for HTTPS | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
proxy_redirect false; | |
proxy_max_temp_file_size 0; | |
# set X-FORWARDED_PROTO so ssl_requirement plugin works | |
proxy_set_header X-FORWARDED_PROTO https; | |
# check for index.html for directory index | |
# if its there on the filesystem then rewite | |
# the url to add /index.html to the end of it | |
# and then break to send it to the next config rules. | |
if (-f $request_filename/index.html) { | |
rewrite (.*) $1/index.html break; | |
} | |
# this is the meat of the rails page caching config | |
# it adds .html to the end of the url and then checks | |
# the filesystem for that file. If it exists, then we | |
# rewite the url to have explicit .html on the end | |
# and then send it on its way to the next config rule. | |
# if there is no file on the fs then it sets all the | |
# necessary headers and proxies to our upstream mongrels | |
if (-f $request_filename.html) { | |
rewrite (.*) $1.html break; | |
} | |
if (!-f $request_filename) { | |
proxy_pass http://errtheblog; | |
break; | |
} | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html { | |
root html; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment