Advertisement
weyabob465

nginx martin

Aug 6th, 2024
1,657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # cat /etc/nginx/nginx.conf
  2.  
  3. user aaaa;
  4. worker_processes auto;
  5. worker_cpu_affinity auto;
  6. pid /var/run/nginx.pid;
  7.  
  8. events {
  9.     worker_connections 1024;
  10.     use epoll;
  11.     multi_accept on;
  12. }
  13.  
  14. http {
  15.     sendfile on;
  16.     tcp_nopush on;
  17.     tcp_nodelay on;
  18.     keepalive_timeout 65;
  19.     keepalive_requests 1000;
  20.     types_hash_max_size 2048;
  21.     include /etc/nginx/mime.types;
  22.     default_type application/octet-stream;
  23.    
  24.     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  25.                       '$status $body_bytes_sent "$http_referer" '
  26.                       '"$http_user_agent" "$http_x_forwarded_for"';
  27.    
  28.     access_log /var/log/nginx/access.log  main;
  29.     error_log /var/log/nginx/error.log;
  30.     gzip              on;
  31.     gzip_vary         on;
  32.     gzip_proxied      any;
  33.     gzip_comp_level   6;
  34.     gzip_buffers      16 8k;
  35.     gzip_http_version 1.1;
  36.     gzip_min_length   256;
  37.    
  38.     gzip_types        text/plain text/css text/xml text/javascript application/x-javascript application/xml
  39.                       application/javascript application/json application/x-protobuf;
  40.     proxy_cache_path  /var/cache/nginx/ levels=1:2 max_size=10g inactive=60m use_temp_path=off keys_zone=backend_cache:10m;
  41.  
  42.     upstream tiles_upstream {
  43.         server localhost:3000;
  44.     }
  45.     server {
  46.         listen 80;
  47.         server_name localhost;
  48.         location / {
  49.             root      /usr/share/nginx/html;
  50.             try_files $uri /index.html;
  51.         }
  52.         # json responses
  53.         location ~ /martin/json/(?<fwd_path>.*) {
  54.             proxy_set_header        Host $host;
  55.             proxy_set_header        X-Forwarded-Proto "http";
  56.             proxy_set_header        X-Real-IP $remote_addr;
  57.             proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  58.             proxy_set_header        X-Forwarded-Host $host:$server_port;
  59.             proxy_set_header        X-Rewrite-URL $uri;
  60.             proxy_redirect          off;
  61.             proxy_connect_timeout   5m;
  62.             proxy_send_timeout      5m;
  63.             proxy_read_timeout      5m;
  64.             send_timeout            5m;
  65.             proxy_pass              http://tiles_upstream/$fwd_path$is_args$args;
  66.             add_header              Content-Type application/json;
  67.             proxy_set_header Accept application/json;
  68.         }
  69.  
  70.         # protobuf responses
  71.         location ~ /martin/protobuf/(?<fwd_path>.*) {
  72.             proxy_set_header        Host $host;
  73.             proxy_set_header        X-Forwarded-Proto "http";
  74.             proxy_set_header        X-Real-IP $remote_addr;
  75.             proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  76.             proxy_set_header        X-Forwarded-Host $host:$server_port;
  77.             proxy_set_header        X-Rewrite-URL $uri;
  78.             proxy_redirect          off;
  79.  
  80.             proxy_connect_timeout   5m;
  81.             proxy_send_timeout      5m;
  82.             proxy_read_timeout      5m;
  83.             send_timeout            5m;
  84.  
  85.             proxy_cache             backend_cache;
  86.             proxy_cache_lock        on;
  87.             proxy_cache_revalidate  on;
  88.             proxy_cache_valid       200 204 302 1d;
  89.             proxy_cache_valid       404 1m;
  90.             proxy_cache_use_stale   error timeout http_500 http_502 http_503 http_504;
  91.             add_header              X-Cache-Status $upstream_cache_status;
  92.  
  93.             proxy_pass              http://tiles_upstream/$fwd_path$is_args$args;
  94.             add_header              Content-Type application/x-protobuf;
  95.             proxy_set_header Accept application/x-protobuf;
  96.         }
  97.  
  98.         error_page 500 502 503 504 /50x.html;
  99.  
  100.         location = /50x.html {
  101.             root /usr/share/nginx/html;
  102.         }
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement