zulip/puppet/zulip_internal/files/nginx/sites-available/loadbalancer

194 lines
4.4 KiB
Plaintext

upstream staging {
server staging.zulip.net:443;
keepalive 10000;
}
upstream alpha {
server alpha0.zulip.net:443;
keepalive 10000;
}
upstream prod {
server prod0.zulip.net:443;
keepalive 10000;
}
upstream dbx {
server dbx.zulip.net:443;
keepalive 10000;
}
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen www.humbughq.com:443;
server_name www.humbughq.com api.humbughq.com humbughq.com;
ssl on;
ssl_certificate /etc/ssl/certs/wildcard-all.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/wildcard-all.key;
location / {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy;
}
location /sockjs {
proxy_pass https://prod;
include /etc/nginx/zulip-include/location-sockjs;
}
location ~ /json/get_events|/json/events|/api/v1/events {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy_longpolling;
}
}
server {
listen staging.zulip.com:443;
ssl on;
ssl_certificate /etc/ssl/certs/wildcard-all.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/wildcard-all.key;
location / {
proxy_pass https://staging/;
include /etc/nginx/zulip-include/proxy;
}
location /sockjs {
proxy_pass https://staging;
include /etc/nginx/zulip-include/location-sockjs;
}
location ~ /json/get_events|/json/events|/api/v1/events {
proxy_pass https://staging;
include /etc/nginx/zulip-include/proxy_longpolling;
}
}
server {
# This stanza also covers bare zulip.com
listen www.zulip.com:443 default_server;
ssl on;
ssl_certificate /etc/ssl/certs/wildcard-all.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/wildcard-all.key;
location / {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy;
}
location /sockjs {
proxy_pass https://prod;
include /etc/nginx/zulip-include/location-sockjs;
}
location ~ /json/get_events|/json/events|/api/v1/events {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy_longpolling;
}
}
server {
listen api.zulip.com:443;
ssl on;
ssl_certificate /etc/ssl/certs/wildcard-all.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/wildcard-all.key;
location / {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy;
}
location /sockjs {
proxy_pass https://prod;
include /etc/nginx/zulip-include/location-sockjs;
}
# On api.zulip.com, there's an automatic leading /api
location ~ /v1/events {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy_longpolling;
}
}
server {
listen zephyr.zulip.com:443;
ssl on;
ssl_certificate /etc/ssl/certs/wildcard-all.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/wildcard-all.key;
location / {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy;
}
location /sockjs {
proxy_pass https://prod;
include /etc/nginx/zulip-include/location-sockjs;
}
location ~ /json/get_events|/json/events|/api/v1/events {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy_longpolling;
}
}
server {
listen www.zulip.com:443;
server_name external-content.zulipcdn.net;
ssl on;
ssl_certificate /etc/ssl/certs/wildcard-all.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/wildcard-all.key;
location / {
proxy_pass http://127.0.0.1:9292;
include /etc/nginx/zulip-include/proxy;
}
}
server {
listen chat.dropboxer.net:443;
ssl on;
ssl_certificate /etc/ssl/certs/chat.dropboxer.net.combined-chain.crt;
ssl_certificate_key /etc/ssl/private/chat.dropboxer.net.key;
location / {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy;
}
location /sockjs {
proxy_pass https://prod;
include /etc/nginx/zulip-include/location-sockjs;
}
location ~ /json/get_events|/json/events|/api/v1/events {
proxy_pass https://prod;
include /etc/nginx/zulip-include/proxy_longpolling;
}
location = /accounts/login/ {
return 302 /accounts/login/google/;
}
location /login/ {
return 302 /accounts/login/google/;
}
}