blob: b4afebe4abc4aba2425e336c043ed8e6ead7ce71 [file] [log] [blame]
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!3DES';
ssl_dhparam /etc/nginx/ssl/dh_params.pem;
ssl_session_cache shared:SSL:10m;
ssl_certificate /etc/nginx/ssl/skia_org.pem;
ssl_certificate_key /etc/nginx/ssl/skia_org.key;
# Keep these marginally longer than the 600s we keep the GCE HTTPS Load Balancer.
proxy_connect_timeout 620s;
proxy_send_timeout 620s;
proxy_read_timeout 620s;
send_timeout 620s;
# Include the proxied host into the combined log format.
log_format combined_proxy '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'upstream=$upstream_response_time '
'"$proxy_host"';
##
# Global Headers
##
# Enable HSTS.
add_header Strict-Transport-Security "max-age=31536000; preload;";
# Enforce browser XSS protection
add_header X-XSS-Protection "1; mode=block";
# Disable content sniffing
add_header X-Content-Type-Options "nosniff";
# Prevent clickjacking.
# add_header X-Frame-Options "SAMEORIGIN" always;
##### skia.org ################################
server {
listen 443 default_server;
server_name skia.org www.skia.org;
ssl on;
access_log /var/log/nginx/skia.access.log;
error_log /var/log/nginx/skia.error.log error;
if ( $host != 'skia.org' ) {
rewrite ^/(.*)$ https://skia.org/$1 permanent;
}
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80 default_server;
server_name skia.org www.skia.org "";
return 301 https://skia.org$request_uri;
}
##### contest.skia.org ###########################
server {
listen 443;
server_name contest.skia.org;
ssl on;
access_log /var/log/nginx/contest.access.log;
error_log /var/log/nginx/contest.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name contest.skia.org;
return 301 https://contest.skia.org$request_uri;
}
##### perf.skia.org ###########################
server {
listen 443;
server_name perf.skia.org;
ssl on;
access_log /var/log/nginx/perf.access.log;
error_log /var/log/nginx/perf.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name perf.skia.org;
return 301 https://perf.skia.org$request_uri;
}
##### android-perf.skia.org (REDIRECT) ###########################
server {
listen 80;
listen 443 ssl;
server_name android-perf.skia.org;
return 301 https://android-master-perf.skia.org$request_uri;
access_log /var/log/nginx/android-perf.access.log;
error_log /var/log/nginx/android-perf.error.log error;
}
##### android-master-ingest.skia.org ###########################
server {
listen 443;
server_name android-master-ingest.skia.org;
ssl on;
access_log /var/log/nginx/android-master-ingest.access.log;
error_log /var/log/nginx/android-master-ingest.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name android-master-ingest.skia.org;
return 301 https://android-master-ingest.skia.org$request_uri;
}
##### android-master-perf.skia.org ###########################
server {
listen 443;
server_name android-master-perf.skia.org;
ssl on;
access_log /var/log/nginx/android-master-perf.access.log;
error_log /var/log/nginx/android-master-perf.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name android-master-perf.skia.org;
return 301 https://android-master-perf.skia.org$request_uri;
}
##### gold.skia.org ###########################
server {
listen 443;
server_name gold.skia.org;
ssl on;
access_log /var/log/nginx/gold.access.log combined_proxy;
error_log /var/log/nginx/gold.error.log error;
client_max_body_size 100M;
location /_/hashes {
proxy_pass https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt;
}
# Serve images directly from the diff server.
location /img/ {
proxy_pass http://skia-diffserver-prod:8001;
proxy_set_header Host $host;
}
location /json/trstatus {
proxy_pass http://skia-gold-prod:19000;
proxy_set_header Host $host;
}
location / {
proxy_pass http://skia-gold-prod:8001;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name gold.skia.org;
return 301 https://gold.skia.org$request_uri;
}
##### public-gold.skia.org ###########################
server {
listen 443;
server_name public-gold.skia.org;
ssl on;
access_log /var/log/nginx/public-gold.access.log combined_proxy;
error_log /var/log/nginx/public-gold.error.log error;
client_max_body_size 100M;
# Serve images directly from the diff server.
location /img/ {
proxy_pass http://skia-diffserver-prod:8001;
proxy_set_header Host $host;
}
location / {
proxy_pass http://skia-gold-public:8001;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name public-gold.skia.org;
return 301 https://public-gold.skia.org$request_uri;
}
##### gold-stage.skia.org ###########################
server {
listen 443;
server_name gold-stage.skia.org;
ssl on;
access_log /var/log/nginx/gold-stage.access.log combined_proxy;
error_log /var/log/nginx/gold-stage.error.log error;
client_max_body_size 100M;
location /_/hashes {
proxy_pass https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt;
}
# Serve images directly from the diff server.
location /img/ {
proxy_pass http://skia-diffserver-stage:8001;
proxy_set_header Host $host;
}
# TODO(stephana): Resolve accessing Gold from Gerrit with authentication and
# remove this rewrite rule. Right now this for testing only.
location /json/tryjobs/ {
proxy_pass http://skia-gold-stage:19000;
proxy_set_header Host $host;
}
location / {
proxy_pass http://skia-gold-stage:8001;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name gold-stage.skia.org;
return 301 https://gold-stage.skia.org$request_uri;
}
##### pdfium-gold.skia.org #####################
server {
listen 443;
server_name pdfium-gold.skia.org;
ssl on;
access_log /var/log/nginx/pdfium-gold.access.log;
error_log /var/log/nginx/pdfium-gold.error.log error;
client_max_body_size 100M;
location /_/hashes {
proxy_pass https://storage.googleapis.com/skia-infra-gm/hash_files/gold-pdfium-hashes.txt;
}
location / {
proxy_pass http://skia-gold-pdfium:8001;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name pdfium-gold.skia.org;
return 301 https://pdfium-gold.skia.org$request_uri;
}
##### chrome-vr-gold.skia.org #####################
server {
listen 443;
server_name chrome-vr-gold.skia.org;
ssl on;
access_log /var/log/nginx/chromevr-gold.access.log;
error_log /var/log/nginx/chromevr-gold.error.log error;
client_max_body_size 100M;
location /_/hashes {
proxy_pass https://storage.googleapis.com/skia-chromevr-gm/hash_files/gold-chromevr-hashes.txt;
}
location / {
proxy_pass http://skia-gold-chromevr:8001;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name chrome-vr-gold.skia.org;
return 301 https://chrome-vr-gold.skia.org$request_uri;
}
##### afdo-chromium-roll.skia.org ###########################
server {
listen 443;
server_name afdo-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/afdo-chromium-autoroll;
}
server {
listen 80;
server_name afdo-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/afdo-chromium-autoroll;
}
##### autoroll.skia.org ###########################
server {
listen 443;
server_name autoroll.skia.org;
ssl on;
access_log /var/log/nginx/autoroll.access.log;
error_log /var/log/nginx/autoroll.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name autoroll.skia.org;
return 301 https://autoroll.skia.org$request_uri;
}
##### autoroll-internal.skia.org ###########################
server {
listen 443;
server_name autoroll-internal.skia.org;
ssl on;
access_log /var/log/nginx/autoroll-internal.access.log;
error_log /var/log/nginx/autoroll-internal.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name autoroll-internal.skia.org;
return 301 https://autoroll-internal.skia.org$request_uri;
}
##### android-master-roll.skia.org ###########################
server {
listen 443;
server_name android-master-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/android-master-autoroll;
}
server {
listen 80;
server_name android-master-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/android-master-autoroll;
}
##### android-next-roll.skia.org ###########################
server {
listen 443;
server_name android-next-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/android-next-autoroll;
}
server {
listen 80;
server_name android-next-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/android-next-autoroll;
}
##### android-o-roll.skia.org ###########################
server {
listen 443;
server_name android-o-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/android-o-autoroll;
}
server {
listen 80;
server_name android-o-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/android-o-autoroll;
}
##### angle-chromium-roll.skia.org ###########################
server {
listen 443;
server_name angle-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/angle-chromium-autoroll;
}
server {
listen 80;
server_name angle-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/angle-chromium-autoroll;
}
##### angle-skia-roll.skia.org ###########################
server {
listen 443;
server_name angle-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/angle-skia-autoroll;
}
server {
listen 80;
server_name angle-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/angle-skia-autoroll;
}
##### catapult-roll.skia.org ###########################
server {
listen 443;
server_name catapult-roll.skia.org;
return 301 https://autoroll.skia.org/r/catapult-autoroll;
}
server {
listen 80;
server_name catapult-roll.skia.org;
return 301 https://autoroll.skia.org/r/catapult-autoroll;
}
##### chromite-chromium-roll.skia.org ###########################
server {
listen 443;
server_name chromite-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/chromite-chromium-autoroll;
}
server {
listen 80;
server_name chromite-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/chromite-chromium-autoroll;
}
##### chromium-skia-roll.skia.org ###########################
server {
listen 443;
server_name chromium-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/chromium-skia-autoroll;
}
server {
listen 80;
server_name chromium-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/chromium-skia-autoroll;
}
##### depot-tools-chromium-roll.skia.org ###########################
server {
listen 443;
server_name depot-tools-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/depot-tools-chromium-autoroll;
}
server {
listen 80;
server_name depot-tools-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/depot-tools-chromium-autoroll;
}
##### flutter-engine-flutter-roll.skia.org ###########################
server {
listen 443;
server_name flutter-engine-flutter-roll.skia.org;
return 301 https://autoroll.skia.org/r/flutter-engine-flutter-autoroll;
}
server {
listen 80;
server_name flutter-engine-flutter-roll.skia.org;
return 301 https://autoroll.skia.org/r/flutter-engine-flutter-autoroll;
}
##### google3-roll.skia.org ###########################
server {
listen 443;
server_name google3-roll.skia.org;
ssl on;
access_log /var/log/nginx/google3-roll.access.log;
error_log /var/log/nginx/google3-roll.error.log error;
# Enforce browser XSS protection
add_header X-XSS-Protection "1; mode=block";
# Disable content sniffing
add_header X-Content-Type-Options nosniff;
location /json/roll {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
location / {
return 301 https://autoroll-internal.skia.org/r/google3-autoroll;
}
}
server {
listen 80;
server_name google3-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/google3-autoroll;
}
##### lottie-web-lottie-ci-roll.skia.org ###########################
server {
listen 443;
server_name lottie-web-lottie-ci-roll.skia.org;
return 301 https://autoroll.skia.org/r/lottie-web-lottie-ci-autoroll;
}
server {
listen 80;
server_name lottie-web-lottie-ci-roll.skia.org;
return 301 https://autoroll.skia.org/r/lottie-web-lottie-ci-autoroll;
}
##### nacl-roll.skia.org ###########################
server {
listen 443;
server_name nacl-roll.skia.org;
return 301 https://autoroll.skia.org/r/nacl-autoroll;
}
server {
listen 80;
server_name nacl-roll.skia.org;
return 301 https://autoroll.skia.org/r/nacl-autoroll;
}
##### pdfium-roll.skia.org ###########################
server {
listen 443;
server_name pdfium-roll.skia.org;
return 301 https://autoroll.skia.org/r/pdfium-autoroll;
}
server {
listen 80;
server_name pdfium-roll.skia.org;
return 301 https://autoroll.skia.org/r/pdfium-autoroll;
}
##### perfetto-chromium-roll.skia.org ###########################
server {
listen 443;
server_name perfetto-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/perfetto-chromium-autoroll;
}
server {
listen 80;
server_name perfetto-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/perfetto-chromium-autoroll;
}
##### fuchsia-roll.skia.org ###########################
server {
listen 443;
server_name fuchsia-roll.skia.org;
return 301 https://autoroll.skia.org/r/fuchsia-autoroll;
}
server {
listen 80;
server_name fuchsia-roll.skia.org;
return 301 https://autoroll.skia.org/r/fuchsia-autoroll;
}
##### fuchsia-sdk-chromium-roll.skia.org ###########################
server {
listen 443;
server_name fuchsia-sdk-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/fuchsia-sdk-chromium-autoroll;
}
server {
listen 80;
server_name fuchsia-sdk-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/fuchsia-sdk-chromium-autoroll;
}
##### skcms-skia-roll.skia.org ###########################
server {
listen 443;
server_name skcms-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/skcms-skia-autoroll;
}
server {
listen 80;
server_name skcms-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/skcms-skia-autoroll;
}
##### skia-flutter-roll.skia.org ###########################
server {
listen 443;
server_name skia-flutter-roll.skia.org;
return 301 https://autoroll.skia.org/r/skia-flutter-autoroll;
}
server {
listen 80;
server_name skia-flutter-roll.skia.org;
return 301 https://autoroll.skia.org/r/skia-flutter-autoroll;
}
##### skia-lottie-ci-roll.skia.org ###########################
server {
listen 443;
server_name skia-lottie-ci-roll.skia.org;
return 301 https://autoroll.skia.org/r/skia-lottie-ci-autoroll;
}
server {
listen 80;
server_name skia-lottie-ci-roll.skia.org;
return 301 https://autoroll.skia.org/r/skia-lottie-ci-autoroll;
}
##### spirv-headers-chromium-roll.skia.org ###########################
server {
listen 443;
server_name spirv-headers-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/spirv-headers-chromium-autoroll;
}
server {
listen 80;
server_name spirv-headers-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/spirv-headers-chromium-autoroll;
}
##### spirv-tools-chromium-roll.skia.org ###########################
server {
listen 443;
server_name spirv-tools-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/spirv-tools-chromium-autoroll;
}
server {
listen 80;
server_name spirv-tools-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/spirv-tools-chromium-autoroll;
}
##### src-internal-chromium-roll.skia.org ###########################
server {
listen 443;
server_name src-internal-chromium-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/src-internal-chromium-autoroll;
}
server {
listen 80;
server_name src-internal-chromium-roll.skia.org;
return 301 https://autoroll-internal.skia.org/r/src-internal-chromium-autoroll;
}
##### swiftshader-skia-roll.skia.org ###########################
server {
listen 443;
server_name swiftshader-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/swiftshader-skia-autoroll;
}
server {
listen 80;
server_name swiftshader-skia-roll.skia.org;
return 301 https://autoroll.skia.org/r/swiftshader-skia-autoroll;
}
##### webrtc-chromium-roll.skia.org ###########################
server {
listen 443;
server_name webrtc-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/webrtc-chromium-autoroll;
}
server {
listen 80;
server_name webrtc-chromium-roll.skia.org;
return 301 https://autoroll.skia.org/r/webrtc-chromium-autoroll;
}
##### mon.skia.org ###########################
server {
listen 443;
server_name mon.skia.org;
ssl on;
access_log /var/log/nginx/mon.access.log;
error_log /var/log/nginx/mon.error.log error;
location / {
proxy_pass http://skia-monitoring:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name mon.skia.org;
return 301 https://mon.skia.org$request_uri;
}
##### metrics.skia.org ###########################
# This rule allows Skolo and Golo bots to report graphite metrics over https.
server {
listen 443;
server_name metrics.skia.org;
ssl on;
access_log /var/log/nginx/metrics.access.log;
error_log /var/log/nginx/metrics.error.log error;
location / {
proxy_pass http://skia-monitoring:10117;
proxy_set_header Host $host;
# Skolo primary public IP TODO(kjlubick) Remove after transition
allow 216.239.33.118/32;
# Skolo secondary public IP TODO(kjlubick) Remove after transition
allow 216.239.33.70/32;
# Skolo new primary public IP
allow 104.132.164.0/24;
# Golo public IP
allow 74.125.248.64/27;
deny all;
}
}
##### push.skia.org ###########################
server {
listen 443;
server_name push.skia.org;
ssl on;
access_log /var/log/nginx/push.access.log;
error_log /var/log/nginx/push.error.log error;
location / {
proxy_pass http://skia-push:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name push.skia.org;
return 301 https://push.skia.org$request_uri;
}
##### fiddle.skia.org ###########################
server {
listen 443;
server_name fiddle.skia.org;
ssl on;
access_log /var/log/nginx/fiddle.access.log;
error_log /var/log/nginx/fiddle.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name fiddle.skia.org;
return 301 https://fiddle.skia.org$request_uri;
}
##### fuzzer.skia.org ###########################
server {
listen 443;
server_name fuzzer.skia.org;
ssl on;
access_log /var/log/nginx/fuzzer.access.log;
error_log /var/log/nginx/fuzzer.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name fuzzer.skia.org;
return 301 https://fuzzer.skia.org$request_uri;
}
#### health.skia.org ################
# Just return empty 200 responses for network load balancing health checks.
# See https://cloud.google.com/compute/docs/load-balancing/health-checks
server {
listen 80;
server_name health.skia.org;
access_log /var/log/nginx/health.access.log;
error_log /var/log/nginx/health.error.log error;
location / {
return 200;
}
}
##### status.skia.org ###########################
server {
listen 443;
server_name status.skia.org;
ssl on;
access_log /var/log/nginx/status.access.log;
error_log /var/log/nginx/status.error.log error;
location / {
proxy_pass http://skia-status:8002;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name status.skia.org;
return 301 https://status.skia.org$request_uri;
}
##### status-internal.skia.org ###########################
server {
listen 443;
server_name status-internal.skia.org;
ssl on;
access_log /var/log/nginx/status-internal.access.log;
error_log /var/log/nginx/status-internal.error.log error;
location / {
proxy_pass http://skia-proxy:8000;
proxy_set_header Host "skia-status-internal-8002-proxy.skia.org";
}
}
server {
listen 80;
server_name status-internal.skia.org;
return 301 https://status-internal.skia.org$request_uri;
}
##### status-staging.skia.org ###########################
server {
listen 443;
server_name status-staging.skia.org;
ssl on;
access_log /var/log/nginx/status-staging.access.log;
error_log /var/log/nginx/status-staging.error.log error;
location / {
proxy_pass http://skia-status-staging:8002;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name status-staging.skia.org;
return 301 https://status-staging.skia.org$request_uri;
}
##### go.skia.org ###########################
server {
listen 443;
server_name go.skia.org;
ssl on;
access_log /var/log/nginx/go.access.log;
error_log /var/log/nginx/go.error.log error;
location / {
add_header Content-Type text/html;
return 200 '<meta name="go-import" content="go.skia.org/infra git https://skia.googlesource.com/buildbot">';
}
}
##### ct.skia.org ###########################
server {
listen 443;
server_name ct.skia.org;
ssl on;
access_log /var/log/nginx/ct.access.log;
error_log /var/log/nginx/ct.error.log error;
client_max_body_size 50M;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name ct.skia.org;
return 301 https://ct.skia.org$request_uri;
}
##### skbug.com (REDIRECT) ###########################
server {
listen 80;
server_name skbug.com;
access_log /var/log/nginx/sk-bug.access.log;
error_log /var/log/nginx/sk-bug.error.log error;
rewrite ^/([0-9]+)$ https://bugs.chromium.org/p/skia/issues/detail?id=$1 redirect;
rewrite ^ https://bugs.chromium.org/p/skia/issues/list redirect;
}
##### bug.skia.org (REDIRECT) ###########################
server {
listen 443;
server_name bug.skia.org;
ssl on;
access_log /var/log/nginx/bug.access.log;
error_log /var/log/nginx/bug.error.log error;
# Note: nginx automatically appends the incoming query parameters to the redirect URL.
rewrite ^/p/skia/issues/detail(/?)$ https://bugs.chromium.org/p/skia/issues/detail redirect;
rewrite ^/p/skia/issues/list(/?)$ https://bugs.chromium.org/p/skia/issues/list redirect;
rewrite ^/p/skia(.*) https://skia.org? redirect;
rewrite ^/([0-9]+)$ https://bugs.chromium.org/p/skia/issues/detail?id=$1 redirect;
rewrite ^ https://bugs.chromium.org/p/skia/issues/list redirect;
}
server {
listen 80;
server_name bug.skia.org;
return 301 https://bug.skia.org$request_uri;
}
##### bugs.skia.org (REDIRECT) ##########################
# (People have trouble remembering if they should type "bug" or "bugs.")
server {
listen 443;
server_name bugs.skia.org;
ssl on;
access_log /var/log/nginx/bugs.access.log;
error_log /var/log/nginx/bugs.error.log error;
# Note: nginx automatically appends the incoming query parameters to the redirect URL.
rewrite ^/p/skia/issues/detail(/?)$ https://bugs.chromium.org/p/skia/issues/detail redirect;
rewrite ^/p/skia/issues/list(/?)$ https://bugs.chromium.org/p/skia/issues/list redirect;
rewrite ^/p/skia(.*) https://skia.org? redirect;
rewrite ^/([0-9]+)$ https://bugs.chromium.org/p/skia/issues/detail?id=$1 redirect;
rewrite ^ https://bugs.chromium.org/p/skia/issues/list redirect;
}
server {
listen 80;
server_name bugs.skia.org;
return 301 https://bugs.skia.org$request_uri;
}
##### code.skia.org (REDIRECT) ###########################
server {
listen 443;
ssl on;
access_log /var/log/nginx/code.access.log;
error_log /var/log/nginx/code.error.log error;
server_name code.skia.org;
rewrite ^ https://skia.googlesource.com/skia redirect;
}
server {
listen 80;
server_name code.skia.org;
rewrite ^ https://skia.googlesource.com/skia redirect;
}
##### review.skia.org (REDIRECT) ###########################
server {
listen 443;
server_name review.skia.org;
ssl on;
access_log /var/log/nginx/review.access.log;
error_log /var/log/nginx/review.error.log error;
# Note: nginx automatically appends the incoming query parameters to the redirect URL.
rewrite ^/([0-9]+)$ https://skia-review.googlesource.com/c/$1/ redirect;
rewrite ^ https://skia-review.googlesource.com redirect;
}
server {
listen 80;
server_name review.skia.org;
return 301 https://review.skia.org$request_uri;
}
##### reviews.skia.org (REDIRECT) ##########################
# (People have trouble remembering if they should type "review" or "reviews.")
server {
listen 443;
server_name reviews.skia.org;
ssl on;
access_log /var/log/nginx/reviews.access.log;
error_log /var/log/nginx/reviews.error.log error;
# Note: nginx automatically appends the incoming query parameters to the redirect URL.
rewrite ^/([0-9]+)$ https://skia-review.googlesource.com/c/$1/ redirect;
rewrite ^ https://skia-review.googlesource.com redirect;
}
server {
listen 80;
server_name reviews.skia.org;
return 301 https://reviews.skia.org$request_uri;
}
##### cs.skia.org (REDIRECT) ###########################
server {
listen 443;
server_name cs.skia.org;
ssl on;
access_log /var/log/nginx/cs.access.log;
error_log /var/log/nginx/cs.error.log error;
rewrite ^/(.+)$ https://code.google.com/p/chromium/codesearch#search/&q=$1%20file:%5Esrc/third_party/skia/&sq=package:chromium redirect;
rewrite ^ https://code.google.com/p/chromium/codesearch#chromium/src/third_party/skia/ redirect;
}
server {
listen 80;
server_name cs.skia.org;
rewrite ^/(.+)$ https://code.google.com/p/chromium/codesearch#search/&q=$1%20file:%5Esrc/third_party/skia/&sq=package:chromium redirect;
rewrite ^ https://code.google.com/p/chromium/codesearch#chromium/src/third_party/skia/ redirect;
}
##### task-scheduler.skia.org ###########################
server {
listen 443;
server_name task-scheduler.skia.org;
ssl on;
access_log /var/log/nginx/task-scheduler.access.log;
error_log /var/log/nginx/task-scheduler.error.log error;
location / {
proxy_pass http://skia-task-scheduler:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name task-scheduler.skia.org;
return 301 https://task-scheduler.skia.org$request_uri;
}
##### task-scheduler-internal.skia.org ###########################
server {
listen 443;
server_name task-scheduler-internal.skia.org;
ssl on;
access_log /var/log/nginx/task-scheduler-internal.access.log;
error_log /var/log/nginx/task-scheduler-internal.error.log error;
location / {
proxy_pass http://skia-proxy:8000;
proxy_set_header Host "skia-task-scheduler-internal-8000-proxy.skia.org";
}
location /google2c59f97e1ced9fdc.html {
add_header Content-Type text/html;
return 200 'google-site-verification: google2c59f97e1ced9fdc.html';
}
location /pubsub/ {
proxy_pass http://skia-task-scheduler-internal:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name task-scheduler-internal.skia.org;
return 301 https://task-scheduler-internal.skia.org$request_uri;
}
##### task-scheduler-staging.skia.org ###########################
server {
listen 443;
server_name task-scheduler-staging.skia.org;
ssl on;
access_log /var/log/nginx/task-scheduler-staging.access.log;
error_log /var/log/nginx/task-scheduler-staging.error.log error;
location / {
proxy_pass http://skia-task-scheduler-staging:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name task-scheduler-staging.skia.org;
return 301 https://task-scheduler-staging.skia.org$request_uri;
}
##### prom.skia.org ###########################
server {
listen 443;
server_name prom.skia.org;
ssl on;
access_log /var/log/nginx/prom.access.log;
error_log /var/log/nginx/prom.error.log error;
client_max_body_size 500M;
location / {
proxy_pass http://skia-prom:8002;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name prom.skia.org;
return 301 https://prom.skia.org$request_uri;
}
##### webhooks.skia.org ###########################
server {
listen 443;
server_name webhooks.skia.org;
ssl on;
access_log /var/log/nginx/webhooks.access.log;
error_log /var/log/nginx/webhooks.error.log error;
client_max_body_size 500M;
location / {
proxy_pass http://skia-prom:8005;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name webhooks.skia.org;
return 301 https://webhooks.skia.org$request_uri;
}
##### proxy.skia.org ###########################
#
# proxy.skia.org is different than most other rules because it matches regexs
# on the first part of the host.
#
server {
listen 443;
server_name ~^[a-zA-Z0-9-]+proxy\.skia\.org$;
ssl on;
access_log /var/log/nginx/proxy.access.log;
error_log /var/log/nginx/proxy.error.log error;
client_max_body_size 500M;
location / {
# If there are substantial changes the following 2 lines, be sure to
# duplicate those changes to the other places where we do
# a proxy_pass to skia-proxy.
proxy_pass http://skia-proxy:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name ~^[a-zA-Z0-9-]+proxy\.skia\.org$;
return 301 https://$server_name$request_uri;
}
##### power.skia.org ###########################
server {
listen 443;
server_name power.skia.org;
ssl on;
access_log /var/log/nginx/power-controller.access.log;
error_log /var/log/nginx/power-controller.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name power.skia.org;
return 301 https://power.skia.org$request_uri;
}
##### ctpixeldiff.skia.org ###########################
server {
listen 443;
server_name ctpixeldiff.skia.org;
ssl on;
access_log /var/log/nginx/ctpixeldiff.access.log;
error_log /var/log/nginx/ctpixeldiff.error.log error;
location / {
proxy_pass http://skia-ct-pixel-diff:8000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name ctpixeldiff.skia.org;
return 301 https://ctpixeldiff.skia.org$request_uri;
}
##### leasing.skia.org ###########################
server {
listen 443;
server_name leasing.skia.org;
ssl on;
access_log /var/log/nginx/leasing.access.log;
error_log /var/log/nginx/leasing.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name leasing.skia.org;
return 301 https://leasing.skia.org$request_uri;
}
##### jsdoc.skia.org ###########################
server {
listen 443;
server_name jsdoc.skia.org;
ssl on;
access_log /var/log/nginx/jsdoc.access.log;
error_log /var/log/nginx/jsdoc.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name jsdoc.skia.org;
return 301 https://jsdoc.skia.org$request_uri;
}
#
#
#
# Entries below here are running on skia-public
#
#
#
##### prom2.skia.org ###########################
server {
listen 443;
server_name prom2.skia.org;
ssl on;
access_log /var/log/nginx/prom2.access.log;
error_log /var/log/nginx/prom2.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name prom2.skia.org;
return 301 https://prom2.skia.org$request_uri;
}
##### grafana2.skia.org ###########################
server {
listen 443;
server_name grafana2.skia.org;
ssl on;
access_log /var/log/nginx/grafana2.access.log;
error_log /var/log/nginx/grafana2.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name grafana2.skia.org;
return 301 https://grafana2.skia.org$request_uri;
}
##### debugger.skia.org ###########################
server {
listen 443;
server_name debugger.skia.org;
ssl on;
access_log /var/log/nginx/debugger.access.log;
error_log /var/log/nginx/debugger.error.log error;
client_max_body_size 500M;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name debugger.skia.org;
return 301 https://debugger.skia.org$request_uri;
}
##### debugger-assets.skia.org ###########################
server {
listen 443;
server_name debugger-assets.skia.org;
ssl on;
access_log /var/log/nginx/debugger-assets.access.log;
error_log /var/log/nginx/debugger-assets.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name debugger-assets.skia.org;
return 301 https://debugger-assets.skia.org$request_uri;
}
##### skottie.skia.org ###########################
server {
listen 443;
server_name skottie.skia.org;
ssl on;
access_log /var/log/nginx/skottie.access.log;
error_log /var/log/nginx/skottie.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name skottie.skia.org;
return 301 https://skottie.skia.org$request_uri;
}
##### skottie-internal.skia.org ###########################
server {
listen 443;
server_name skottie-internal.skia.org;
ssl on;
access_log /var/log/nginx/skottie-internal.access.log;
error_log /var/log/nginx/skottie-internal.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name skottie-internal.skia.org;
return 301 https://skottie-internal.skia.org$request_uri;
}
##### status2.skia.org ###########################
server {
listen 443;
server_name status2.skia.org;
ssl on;
access_log /var/log/nginx/status2.access.log;
error_log /var/log/nginx/status2.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name status2.skia.org;
return 301 https://status2.skia.org$request_uri;
}
##### named-fiddles.skia.org ###########################
server {
listen 443;
server_name named-fiddles.skia.org;
ssl on;
access_log /var/log/nginx/named-fiddles.access.log;
error_log /var/log/nginx/named-fiddles.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name named-fiddles.skia.org;
return 301 https://named-fiddles.skia.org$request_uri;
}
##### am.skia.org ###########################
server {
listen 443;
server_name am.skia.org;
ssl on;
access_log /var/log/nginx/am.access.log;
error_log /var/log/nginx/am.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name am.skia.org;
return 301 https://am.skia.org$request_uri;
}
##### lottie-gold.skia.org ###########################
server {
listen 443;
server_name lottie-gold.skia.org;
ssl on;
access_log /var/log/nginx/lottie-gold.access.log;
error_log /var/log/nginx/lottie-gold.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name lottie-gold.skia.org;
return 301 https://lottie-gold.skia.org$request_uri;
}
##### chrome-gpu-gold.skia.org ###########################
server {
listen 443;
server_name chrome-gpu-gold.skia.org;
ssl on;
access_log /var/log/nginx/chrome-gpu-gold.access.log;
error_log /var/log/nginx/chrome-gpu-gold.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name chrome-gpu-gold.skia.org;
return 301 https://chrome-gpu-gold.skia.org$request_uri;
}
##### jsfiddle.skia.org ###########################
server {
listen 443;
server_name jsfiddle.skia.org;
ssl on;
access_log /var/log/nginx/jsfiddle.access.log;
error_log /var/log/nginx/jsfiddle.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name jsfiddle.skia.org;
return 301 https://jsfiddle.skia.org$request_uri;
}
##### task-driver.skia.org ###########################
server {
listen 443;
server_name task-driver.skia.org;
ssl on;
access_log /var/log/nginx/task-driver.access.log;
error_log /var/log/nginx/task-driver.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name task-driver.skia.org;
return 301 https://task-driver.skia.org$request_uri;
}
##### ct-perf.skia.org ###########################
server {
listen 443;
server_name ct-perf.skia.org;
ssl on;
access_log /var/log/nginx/ct-perf.access.log;
error_log /var/log/nginx/ct-perf.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name ct-perf.skia.org;
return 301 https://ct-perf.skia.org$request_uri;
}
##### collectd.skia.org ###########################
# This rule allows Skolo and Golo bots to report write_http collectd info over https.
server {
listen 443;
server_name collectd.skia.org;
ssl on;
access_log /var/log/nginx/collectd.access.log;
error_log /var/log/nginx/collectd.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
# Skolo new primary public IP
allow 104.132.164.0/24;
# Golo public IP
allow 74.125.248.64/27;
deny all;
}
}
##### api.skia.org ###########################
server {
listen 443;
server_name api.skia.org;
ssl on;
access_log /var/log/nginx/api.access.log;
error_log /var/log/nginx/api.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name api.skia.org;
return 301 https://api.skia.org$request_uri;
}
##### particles.skia.org ###########################
server {
listen 443;
server_name particles.skia.org;
ssl on;
access_log /var/log/nginx/particles.access.log;
error_log /var/log/nginx/particles.error.log error;
location / {
proxy_pass https://35.201.76.220;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name particles.skia.org;
return 301 https://particles.skia.org$request_uri;
}