* watch work: proxy directly to crawls instead of redis pubsub
- add 'watchIPs' to crawl detail output
- cache crawl ips for quick access for auth
- add '/ipaccess/{ip}' endpoint for watch ws connection to ensure ws has access to the specified container ip
- enable 'auth_request' in nginx frontend
- requirements: update to latest redis-py
remaining fixes for #134
		
	
			
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
include ./resolvers/resolvers.conf;
 | 
						|
 | 
						|
server {
 | 
						|
    listen 80 default_server;
 | 
						|
    server_name _;
 | 
						|
    proxy_buffering off;
 | 
						|
    proxy_buffers 16 64k;
 | 
						|
    proxy_buffer_size 64k;
 | 
						|
    root /usr/share/nginx/html;
 | 
						|
    index index.html index.htm;
 | 
						|
 | 
						|
    error_page 500 501 502 503 504 /50x.html;
 | 
						|
 | 
						|
    merge_slashes off;
 | 
						|
    location = /50x.html {
 | 
						|
        root /usr/share/nginx/html;
 | 
						|
    }
 | 
						|
 | 
						|
    # fallback to index for any page
 | 
						|
    error_page 404 /index.html;
 | 
						|
  
 | 
						|
    location / {
 | 
						|
      root   /usr/share/nginx/html;
 | 
						|
      index  index.html index.htm;
 | 
						|
    }
 | 
						|
 | 
						|
    # used in both k8s and docker: RWP_BASE_URL set in Dockerfile
 | 
						|
    location /replay/sw.js {
 | 
						|
      add_header Content-Type application/javascript;
 | 
						|
      return 200 'importScripts("${RWP_BASE_URL}sw.js");';
 | 
						|
    }
 | 
						|
 | 
						|
    # used by docker only: k8s deployment handles /api directly via ingress
 | 
						|
    location /api/ {
 | 
						|
      proxy_pass http://${BACKEND_HOST}:8000/;
 | 
						|
      proxy_set_header Host $http_host;
 | 
						|
      proxy_set_header X-Forwarded-Proto $scheme;
 | 
						|
    }
 | 
						|
 | 
						|
    location ~* /watch/([^/]+)/([^/]+)/([^/]+)/ws {
 | 
						|
      set $archive $1;
 | 
						|
      set $crawl $2;
 | 
						|
      set $crawlerip $3;
 | 
						|
      set $auth_bearer $arg_auth_bearer;
 | 
						|
      auth_request  /ipaccess;
 | 
						|
 | 
						|
      proxy_pass http://$crawlerip:9037/ws;
 | 
						|
      proxy_set_header Host "localhost";
 | 
						|
 | 
						|
      proxy_http_version 1.1;
 | 
						|
      proxy_set_header Upgrade $http_upgrade;
 | 
						|
      proxy_set_header Connection $http_connection;
 | 
						|
    }
 | 
						|
 | 
						|
    location = /ipaccess {
 | 
						|
      internal;
 | 
						|
      proxy_pass http://${BACKEND_HOST}:8000/archives/$archive/crawls/$crawl/ipaccess/$crawlerip?auth_bearer=$auth_bearer;
 | 
						|
      proxy_pass_request_body off;
 | 
						|
      proxy_set_header Content-Length "";
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 |