Last active
August 29, 2015 14:05
-
-
Save jsyeo/022f48a165b77442a362 to your computer and use it in GitHub Desktop.
Nginx Thin Clustered Mode Configuration
This file contains hidden or 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
| # You may add here your | |
| # server { | |
| # ... | |
| # } | |
| # statements for each of your virtual hosts to this file | |
| ## | |
| # You should look at the following URL's in order to grasp a solid understanding | |
| # of Nginx configuration files in order to fully unleash the power of Nginx. | |
| # http://wiki.nginx.org/Pitfalls | |
| # http://wiki.nginx.org/QuickStart | |
| # http://wiki.nginx.org/Configuration | |
| # | |
| # Generally, you will want to move this file somewhere, and start with a clean | |
| # file but keep this around for reference. Or just disable in sites-enabled. | |
| # | |
| # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. | |
| ## | |
| upstream domain1 { | |
| server 127.0.0.1:3000; | |
| server 127.0.0.1:3001; | |
| server 127.0.0.1:3002; | |
| } | |
| server { | |
| listen 80; | |
| return 301 https://$host$request_uri; | |
| listen [::]:80 default_server ipv6only=on; | |
| # Make site accessible from http://localhost/ | |
| # server_name localhost; | |
| location / { | |
| # First attempt to serve request as file, then | |
| # as directory, then fall back to displaying a 404. | |
| try_files $uri $uri/ =404; | |
| # Uncomment to enable naxsi on this location | |
| # include /etc/nginx/naxsi.rules | |
| } | |
| # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests | |
| #location /RequestDenied { | |
| # proxy_pass http://127.0.0.1:8080; | |
| #} | |
| #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 /usr/share/nginx/html; | |
| #} | |
| # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 | |
| # | |
| #location ~ \.php$ { | |
| # fastcgi_split_path_info ^(.+\.php)(/.+)$; | |
| # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini | |
| # | |
| # # With php5-cgi alone: | |
| # fastcgi_pass 127.0.0.1:9000; | |
| # # With php5-fpm: | |
| # fastcgi_pass unix:/var/run/php5-fpm.sock; | |
| # fastcgi_index index.php; | |
| # include fastcgi_params; | |
| #} | |
| # deny access to .htaccess files, if Apache's document root | |
| # concurs with nginx's one | |
| # | |
| #location ~ /\.ht { | |
| # deny all; | |
| #} | |
| } | |
| # HTTPS server | |
| # | |
| server { | |
| listen 443; | |
| server_name thedomain; | |
| root /path/to/railsapp/public/; | |
| index index.html; | |
| ssl on; | |
| ssl_certificate /etc/nginx/ssl/server.crt; | |
| ssl_certificate_key /etc/nginx/ssl/server.key; | |
| 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_redirect false; | |
| if (-f $request_filename/index.html) { | |
| rewrite (.*) $1/index.html break; | |
| } | |
| if (-f $request_filename.html) { | |
| rewrite (.*) $1.html break; | |
| } | |
| if (!-f $request_filename) { | |
| proxy_pass http://domain1; | |
| break; | |
| } | |
| } | |
| } | |
This file contains hidden or 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
| web: thin -C railsapp.yml start |
This file contains hidden or 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
| --- | |
| chdir: "/path/to/railsapp" | |
| environment: production | |
| address: 0.0.0.0 | |
| port: 3000 | |
| timeout: 30 | |
| log: "/path/to/railsapp/log/thin.log" | |
| pid: tmp/pids/thin.pid | |
| max_conns: 1024 | |
| max_persistent_conns: 100 | |
| require: [] | |
| wait: 30 | |
| threadpool_size: 20 | |
| servers: 3 | |
| daemonize: true |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For this to work, set thedomain at https://gist.github.com/jsyeo/022f48a165b77442a362#file-nginx-config-L82 to your domain name, e.g.
domain.comand set/path/to/railsappto your rails application's root path.