github.com/uber/kraken@v0.1.4/nginx/config/proxy.go (about) 1 // Copyright (c) 2016-2019 Uber Technologies, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 package config 15 16 // ProxyTemplate is the default proxy nginx tmpl. 17 const ProxyTemplate = ` 18 upstream registry { 19 server {{.registry_server}}; 20 } 21 22 upstream registry-override { 23 server {{.registry_override_server}}; 24 } 25 26 {{range .ports}} 27 server { 28 listen {{.}}; 29 30 {{$.client_verification}} 31 32 client_max_body_size 10G; 33 34 access_log {{$.log_dir}}/nginx-access.log json; 35 error_log {{$.log_dir}}/nginx-error.log; 36 37 gzip on; 38 gzip_types text/plain test/csv application/json; 39 40 # Committing large blobs might take a while. 41 proxy_read_timeout 3m; 42 43 location /v2/_catalog { 44 proxy_pass http://registry-override; 45 46 set $hostheader $hostname; 47 if ( $host = "localhost" ) { 48 set $hostheader "localhost"; 49 } 50 if ( $host = "127.0.0.1" ) { 51 set $hostheader "127.0.0.1"; 52 } 53 if ( $host = "192.168.65.1" ) { 54 set $hostheader "192.168.65.1"; 55 } 56 if ( $host = "host.docker.internal" ) { 57 set $hostheader "host.docker.internal"; 58 } 59 proxy_set_header Host $hostheader:{{.}}; 60 } 61 62 location / { 63 proxy_pass http://registry; 64 65 set $hostheader $hostname; 66 if ( $host = "localhost" ) { 67 set $hostheader "localhost"; 68 } 69 if ( $host = "127.0.0.1" ) { 70 set $hostheader "127.0.0.1"; 71 } 72 if ( $host = "192.168.65.1" ) { 73 set $hostheader "192.168.65.1"; 74 } 75 if ( $host = "host.docker.internal" ) { 76 set $hostheader "host.docker.internal"; 77 } 78 proxy_set_header Host $hostheader:{{.}}; 79 } 80 } 81 {{end}} 82 `