...

Text file src/cuelang.org/go/doc/tutorial/kubernetes/quick/services/proxy/nginx/configmap.cue

Documentation: cuelang.org/go/doc/tutorial/kubernetes/quick/services/proxy/nginx

     1package kube
     2
     3configMap: nginx: {
     4	apiVersion: "v1"
     5	kind:       "ConfigMap"
     6	data: "nginx.conf": """
     7		events {
     8		    worker_connections 768;
     9		}
    10		http {
    11		    sendfile on;
    12		    tcp_nopush on;
    13		    tcp_nodelay on;
    14		    # needs to be high for some download jobs.
    15		    keepalive_timeout 400;
    16		    # proxy_connect_timeout  300;
    17		    proxy_send_timeout       300;
    18		    proxy_read_timeout       300;
    19		    send_timeout             300;
    20
    21		    types_hash_max_size 2048;
    22
    23		    include /etc/nginx/mime.types;
    24		    default_type application/octet-stream;
    25
    26		    access_log /dev/stdout;
    27		    error_log  /dev/stdout;
    28
    29		    # Disable POST body size constraints. We often deal with large
    30		    # files. Especially docker containers may be large.
    31		    client_max_body_size 0;
    32
    33		    upstream goget {
    34		        server localhost:7070;
    35		    }
    36
    37		    # Redirect incoming Google Cloud Storage notifications:
    38		   server {
    39		        listen 443 ssl;
    40		        server_name notify.example.com notify2.example.com;
    41
    42		        ssl_certificate /etc/ssl/server.crt;
    43		        ssl_certificate_key /etc/ssl/server.key;
    44
    45		        # Security enhancements to deal with poodles and the like.
    46		        # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
    47		        # ssl_ciphers 'AES256+EECDH:AES256+EDH';
    48		        ssl_ciphers \"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4\";
    49
    50		        # We don't like poodles.
    51		        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    52		        ssl_session_cache shared:SSL:10m;
    53
    54		        # Enable Forward secrecy.
    55		        ssl_dhparam /etc/ssl/dhparam.pem;
    56		        ssl_prefer_server_ciphers on;
    57
    58		        # Enable HTST.
    59		        add_header Strict-Transport-Security max-age=1209600;
    60
    61		        # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
    62		        chunked_transfer_encoding on;
    63
    64		        location / {
    65		            proxy_pass http://tasks:7080;
    66		            proxy_connect_timeout 1;
    67		        }
    68		    }
    69
    70		    server {
    71		        listen 80;
    72		        listen 443 ssl;
    73		        server_name x.example.com example.io;
    74
    75		        location ~ \"(/[^/]+)(/.*)?\" {
    76		            set $myhost $host;
    77		            if ($arg_go-get = \"1\") {
    78		                set $myhost \"goget\";
    79		            }
    80		            proxy_pass http://$myhost$1;
    81		            proxy_set_header Host $host;
    82		            proxy_set_header X-Real-IP $remote_addr;
    83		            proxy_set_header X-Scheme $scheme;
    84		            proxy_connect_timeout 1;
    85		        }
    86
    87		        location / {
    88		            set $myhost $host;
    89		            if ($arg_go-get = \"1\") {
    90		                set $myhost \"goget\";
    91		            }
    92		            proxy_pass http://$myhost;
    93		            proxy_set_header Host $host;
    94		            proxy_set_header X-Real-IP $remote_addr;
    95		            proxy_set_header X-Scheme $scheme;
    96		            proxy_connect_timeout 1;
    97		        }
    98		    }
    99
   100		    server {
   101		        listen 80;
   102		        server_name www.example.com w.example.com;
   103
   104		        resolver 8.8.8.8;
   105
   106		        location / {
   107		            proxy_set_header X-Forwarded-Host $host;
   108		            proxy_set_header X-Forwarded-Server $host;
   109		            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   110		            proxy_set_header X-Real-IP $remote_addr;
   111
   112		            proxy_pass http://$host.default.example.appspot.com/$request_uri;
   113		            proxy_redirect http://$host.default.example.appspot.com/ /;
   114		        }
   115		    }
   116
   117		    server {
   118		        # We could add the following line and the connection would still be SSL,
   119		        # but it doesn't appear to be necessary. Seems saver this way.
   120		        listen 80;
   121		        listen 443 default ssl;
   122		        server_name ~^(?<sub>.*)\\.example\\.com$;
   123
   124		        ssl_certificate /etc/ssl/server.crt;
   125		        ssl_certificate_key /etc/ssl/server.key;
   126
   127		        # Security enhancements to deal with poodles and the like.
   128		        # See https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
   129		        # ssl_ciphers 'AES256+EECDH:AES256+EDH';
   130		        ssl_ciphers \"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4\";
   131
   132		        # We don't like poodles.
   133		        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   134		        ssl_session_cache shared:SSL:10m;
   135
   136		        # Enable Forward secrecy.
   137		        ssl_dhparam /etc/ssl/dhparam.pem;
   138		        ssl_prefer_server_ciphers on;
   139
   140		        # Enable HTST.
   141		        add_header Strict-Transport-Security max-age=1209600;
   142
   143		        if ($ssl_protocol = \"\") {
   144		            rewrite ^   https://$host$request_uri? permanent;
   145		        }
   146
   147		        # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
   148		        chunked_transfer_encoding on;
   149
   150		        location / {
   151		            proxy_pass http://authproxy:4180;
   152		            proxy_set_header Host $host;
   153		            proxy_set_header X-Real-IP $remote_addr;
   154		            proxy_set_header X-Scheme $scheme;
   155		            proxy_connect_timeout 1;
   156		        }
   157		    }
   158		}
   159		"""
   160}

View as plain text