# /etc/nginx/nginx.conf # for docker, must set daemon to off daemon off; user nginx; # Set number of worker processes automatically based on number of CPU cores. worker_processes auto; # Enables the use of JIT for regular expressions to speed-up their processing. pcre_jit on; # Configures default error logger. error_log /var/log/nginx/error.log warn; # Includes files with directives to load dynamic modules. include /etc/nginx/modules/*.conf; # Uncomment to include files with config snippets into the root context. # NOTE: This will be enabled by default in Alpine 3.15. #include /etc/nginx/conf.d/*.conf; events { # The maximum number of simultaneous connections that can be opened by # a worker process. worker_connections 1024; } http { # Includes mapping of file name extensions to MIME types of responses # and defines the default type. include /etc/nginx/mime.types; default_type application/octet-stream; # Name servers used to resolve names of upstream servers into addresses. # It's also needed when using tcpsocket and udpsocket in Lua modules. #resolver 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001; # Don't tell nginx version to the clients. Default is 'on'. server_tokens off; # Specifies the maximum accepted body size of a client request, as # indicated by the request header Content-Length. If the stated content # length is greater than this size, then the client receives the HTTP # error code 413. Set to 0 to disable. Default is '1m'. client_max_body_size 64M; client_header_buffer_size 16k; large_client_header_buffers 4 16k; ## Cache open FD open_file_cache max=10000 inactive=3600s; open_file_cache_valid 7200s; open_file_cache_min_uses 2; # Sendfile copies data between one FD and other from within the kernel, # which is more efficient than read() + write(). Default is off. sendfile on; # Causes nginx to attempt to send its HTTP response head in one packet, # instead of using partial frames. Default is 'off'. tcp_nopush on; tcp_nodelay on; # Enables the specified protocols. Default is TLSv1 TLSv1.1 TLSv1.2. # TIP: If you're not obligated to support ancient clients, remove TLSv1.1. ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # Path of the file with Diffie-Hellman parameters for EDH ciphers. # TIP: Generate with: `openssl dhparam -out /etc/ssl/nginx/dh2048.pem 2048` #ssl_dhparam /etc/ssl/nginx/dh2048.pem; # Specifies that our cipher suits should be preferred over client ciphers. # Default is 'off'. ssl_prefer_server_ciphers on; # Enables a shared SSL cache with size that can hold around 8000 sessions. # Default is 'none'. ssl_session_cache shared:SSL:2m; # Specifies a time during which a client may reuse the session parameters. # Default is '5m'. ssl_session_timeout 1h; # Disable TLS session tickets (they are insecure). Default is 'on'. ssl_session_tickets off; # Enable gzipping of responses. gzip on; # Set the Vary HTTP header as defined in the RFC 2616. Default is 'off'. gzip_vary on; gzip_proxied any; gzip_types application/javascript application/x-javascript application/rss+xml text/javascript text/css image/svg+xml; gzip_buffers 16 8k; gzip_comp_level 6; # Helper variable for proxying websockets. map $http_upgrade $connection_upgrade { default upgrade; '' close; } # Specifies the main log format. log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # Sets the path, format, and configuration for a buffered log write. access_log /var/log/nginx/access.log main; # Includes virtual hosts configs. # include /etc/nginx/http.d/*.conf; keepalive_timeout 15; port_in_redirect off; absolute_redirect off; # preview-zh.pingcap.com server { listen 80 default_server; listen [::]:80 default_server; server_name preview-zh.pingcap.com; server_name preview-cn.pingcap.com; server_name preview.www.pingcap.com; access_log /var/log/nginx/preview-zh.pingcap.com.access.log main; error_log /var/log/nginx/preview-zh.pingcap.com.error.log error; error_page 404 403 /404.html; location = / { if ($http_referer ~* https://preview-zh.pingcap.com/zh) { rewrite ^/(.*)$ https://preview-en.pingcap.com; } if ($http_referer = "") { rewrite ^/(.*)$ https://preview-zh.pingcap.com/zh; } proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://website-preview:80; auth_basic "authentication"; auth_basic_user_file conf.d/.htpasswd; } location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://website-preview:80; auth_basic "authentication"; auth_basic_user_file conf.d/.htpasswd; } location /events/devcon2022 { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://106.75.86.110/; auth_basic "authentication"; auth_basic_user_file conf.d/.htpasswd; } } # preview-en.pingcap.com server { listen 80; listen [::]:80; server_name preview-en.pingcap.com; access_log /var/log/nginx/preview-en.pingcap.com.access.log main; error_log /var/log/nginx/preview-en.pingcap.com.error.log error; error_page 404 403 /404.html; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name preview-en.pingcap.com; ssl_certificate /app/cert/preview-en.pingcap.com/preview-en.pingcap.com.cer; ssl_certificate_key /app/cert/preview-en.pingcap.com/preview-en.pingcap.com.key; access_log /var/log/nginx/preview-en.pingcap.com.access.log main; error_log /var/log/nginx/preview-en.pingcap.com.error.log error; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://pingcap_website_en_php_apache:80; auth_basic "authentication"; auth_basic_user_file conf.d/.htpasswd; } } } # TIP: Uncomment if you use stream module. #include /etc/nginx/stream.conf;