Created
December 4, 2013 19:43
-
-
Save cvan/7794203 to your computer and use it in GitHub Desktop.
nginx configuration for Firefox Marketplace (using a custom API)
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
worker_processes 1; | |
events { | |
worker_connections 1024; | |
} | |
http { | |
include mime.types; | |
default_type application/octet-stream; | |
sendfile on; | |
keepalive_timeout 65; | |
gzip on; | |
# Change this to update where your fireplace is running. | |
upstream fireplace { | |
server localhost:8675; | |
} | |
upstream rapidorapido { | |
server localhost:7000; | |
} | |
# Change this to reflect where your zamboni is running. | |
upstream zamboni { | |
server localhost:8000; | |
} | |
# Change this to reflect where your webpay is running. | |
# Optional - only needed if you're testing payments. | |
upstream webpay { | |
server localhost:9000; | |
} | |
server { | |
# Listening on port 80 is nice but you have to start nginx | |
# with the right permissions. | |
listen 80 default; | |
# Set a host name. You also have to alias this host to | |
# 127.0.0.1 in /etc/hosts | |
server_name fireplace.local; | |
location /apps/ { | |
rewrite ^/apps/$ / permanent; | |
rewrite ^/apps/(.*) /search?cat=$1 permanent; | |
} | |
rewrite ^/$ /server.html break; | |
rewrite ^/abuse$ /server.html break; | |
rewrite ^/app/.*/statistics.* $uri break; | |
rewrite "^/app/(?![0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/manifest\.webapp$).*" /server.html break; | |
rewrite ^/category/.* /server.html break; | |
rewrite ^/collection/.* /server.html break; | |
rewrite ^/debug$ /server.html break; | |
rewrite ^/feedback$ /server.html break; | |
rewrite ^/partners/.* /server.html break; | |
rewrite ^/privacy-policy$ /server.html break; | |
rewrite ^/purchases$ /server.html break; | |
rewrite ^/search/?$ /server.html break; | |
rewrite ^/settings$ /server.html break; | |
rewrite ^/terms-of-use$ /server.html break; | |
rewrite ^/tests$ /server.html break; | |
rewrite ^/user/.* /server.html break; | |
location / { | |
try_files $uri /server.html; | |
} | |
#location / { | |
# # Default to fireplace. | |
# proxy_pass http://fireplace; | |
# proxy_set_header Host $host; | |
#} | |
location /server.html { | |
proxy_pass http://zamboni; | |
break; | |
} | |
# NOTE: Special! | |
location /api { | |
proxy_pass http://rapidorapido; | |
break; | |
} | |
location /mozpay/ { | |
# This is an optional alias to your local Webpay server | |
# so you can process payments. The /mozpay/ prefix is what we use in production. | |
proxy_pass http://webpay; | |
proxy_set_header Host $host; | |
} | |
# Conditionally pass Zamboni urls to Zamboni. | |
#location ~ '^/(admin|addons|api|developers|jsi18n\.js|login|logout|lookup|reviewers|services|tmp)' { | |
location ~ '^/(admin|addons|developers|jsi18n\.js|login|logout|lookup|reviewers|services|tmp)' { | |
proxy_pass http://zamboni; | |
proxy_set_header Host $host; | |
} | |
# Privacy policy etc are on zamboni. | |
location /media/docs { | |
proxy_pass http://zamboni; | |
break; | |
} | |
# Conditionally handle /users for both Zamboni and Fireplace. | |
location /users { | |
proxy_set_header Host $host; | |
if ($http_referer ~ '^http://[^/]*?/(developers|reviewers|login\?to=/(admin|reviewers|developers))') { | |
proxy_pass http://zamboni; | |
break; | |
} | |
proxy_pass http://fireplace; | |
} | |
# Conditionally handle media depending on where we are using referer (sic) header. | |
#location /media { | |
# proxy_set_header Host $host; | |
# if ($http_referer ~ '^http://[^/]*?/(admin|developers|login\?to=/(admin|reviewers|developers)|lookup|media/css/(ecosystem|devreg|gaia|mkt)|reviewers|services)') { | |
# proxy_pass http://zamboni; | |
# break; | |
# } | |
# if ($http_referer ~ '^http://[^/]*?/mozpay') { | |
# proxy_pass http://webpay; | |
# break; | |
# } | |
# proxy_pass http://fireplace; | |
#} | |
location /media { | |
alias /opt/zamboni/media; | |
} | |
location /tmp { | |
alias /opt/zamboni/tmp; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment