server { listen 80 default_server; server_name _; return 301 https://$server_name$request_uri; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } # Pool de servidores. Permite hacer balanceo de carga. upstream guacamole { server java-server:8080; # appserver_ip:ws_port } # Servicio que realiza reverse proxy y traslación (upgrade) de protocolosi: https + ws == wss <--> ws server { listen 8020 ssl; ssl_certificate /etc/nginx/ssl/web2py.crt; ssl_certificate_key /etc/nginx/ssl/web2py.key; location / { proxy_pass http://guacamole; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } server { listen 443 default_server ssl; server_name _; ssl_certificate /etc/nginx/ssl/web2py.crt; ssl_certificate_key /etc/nginx/ssl/web2py.key; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_ciphers ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA; ssl_protocols TLSv1.2 TLSv1.3; keepalive_timeout 70; location ~* /(\w+)/static/ { root /var/www/web2py/applications/; #remove next comment on production expires max; } location / { include uwsgi_params; uwsgi_param UWSGI_SCHEME $scheme; uwsgi_param SERVER_SOFTWARE nginx/$nginx_version; uwsgi_pass web2py-uwsgi:3000; uwsgi_read_timeout 360; } }