# TODO(gaozifeng): Use nginx ingress user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { access_log off; sendfile on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # test-infra server server { listen 80; server_name tcms.pingcap.net; return 308 https://tcms.pingcap.net$request_uri; } server { server_name tcms.pingcap.net; listen 443 ssl http2; listen 443 http3 reuseport; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_early_data on; ssl_session_tickets off; ssl_session_cache shared:SSL:120m; ssl_session_timeout 1d; ssl_stapling on; ssl_stapling_verify on; ssl_certificate /etc/nginx/pingcap.net.cert; ssl_certificate_key /etc/nginx/pingcap.net.key; quic_retry on; keepalive_requests 5000; reset_timedout_connection on; gzip on; gzip_proxied any; gzip_min_length 4096; gzip_types application/json application/x-yaml text/plain text/xml text/css text/javascript application/x-javascript application/javascript; gzip_vary on; gzip_disable “MSIE [1-6]\.(?!.*SV1)”; proxy_http_version 1.1; proxy_socket_keepalive on; proxy_ssl_session_reuse on; proxy_redirect off; 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-Proto https; proxy_set_header Early-Data $ssl_early_data; # CORS add_header Access-Control-Allow-Origin *; # Add Alt-Svc header to negotiate HTTP/3. add_header Alt-Svc 'h3=":443",quic=":443"'; root /usr/share/tcms/html; # TCMS Server API location /api { proxy_pass http://172.16.4.180:30006; proxy_buffer_size 128k; proxy_buffers 8 256k; proxy_busy_buffers_size 256k; } location /ping { proxy_pass http://172.16.4.180:30006; } location /swagger { proxy_pass http://172.16.4.180:30006; } # TCMS Dashboard Pages & Static Files location /dashboard { alias /usr/share/tcms/html/dashboard; try_files $uri /index.html =404; autoindex on; sendfile_max_chunk 2m; } location = / { alias /usr/share/tcms/html; try_files $uri $uri.html /dashboard/index.html; autoindex on; sendfile_max_chunk 2m; } } }