upstream conversationflow { | |
server unix:///home/deployer/apps/conversationflow/shared/tmp/sockets/puma.sock fail_timeout=0; | |
} | |
server { | |
listen 80 default deferred; | |
server_name demo.ec.thefool.it; | |
root /home/deployer/apps/conversationflow/current/public; | |
access_log /home/deployer/apps/conversationflow/shared/log/nginx.access.log; | |
error_log /home/deployer/apps/conversationflow/shared/log/nginx.error.log info; | |
error_page 500 502 503 504 /500.html; | |
client_max_body_size 4G; | |
keepalive_timeout 10; | |
# 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 / { | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header Host $http_host; | |
# If the file exists as a static file serve it directly without | |
# running all the other rewrite tests on it | |
if (-f $request_filename) { | |
break; | |
} | |
# Check for index.html for directory index: | |
# if it is 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 Rack 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://conversationflow; | |
break; | |
} | |
} | |
# Now this supposedly should work as it gets the filenames with querystrings that Rails provides. | |
# BUT there's a chance it could break the ajax calls. | |
# location ~* \.(ico|css|gif|jpe?g|png)(\?[0-9]+)?$ { | |
# expires max; | |
# break; | |
# } | |
# location ~ ^/javascripts/.*\.js(\?[0-9]+)?$ { | |
# expires max; | |
# break; | |
# } | |
# Error pages | |
location = /500.html { | |
root /home/deployer/apps/conversationflow/current/public; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment