Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howto:nginx [2022/01/15 22:47] – added keepalive timeout warning Xerxeshowto:nginx [2022/01/17 07:18] (current) – add non root url example ragnarok
Line 1: Line 1:
 ====== How to use nginx as a Reverse Proxy with Synchronet ====== ====== How to use nginx as a Reverse Proxy with Synchronet ======
  
-nignx is a popular multiplatform web server and reverse proxy.  If can be used to proxy traffic to the Synchronet webserver to host multiple websites and web services with different hostnames (or subdirectories if the webserver can be configured that way) to a single IP address.  You can use nginx to handle the certificate for SSL.+nignx is a popular multiplatform web server and reverse proxy.  If can be used to proxy traffic to multiple physical/virtual webservers and to host web services with different hostnames (or subdirectories if the webserver can be configured that way) to a single IP address.  Additionally, you can use nginx to handle the certificate for SSL.
  
 ===== Configuring nginx with SSL ===== ===== Configuring nginx with SSL =====
Line 7: Line 7:
 Here is an example configuration for proxying to the machine on your network (in this example 10.0.0.10) with Synchronet BBS Webserver: Here is an example configuration for proxying to the machine on your network (in this example 10.0.0.10) with Synchronet BBS Webserver:
  
-  server {+    server {
         listen       443 ssl;         listen       443 ssl;
         server_name   mybbs.com;         server_name   mybbs.com;
-   location / { +        location / { 
-  proxy_set_header X-Real-IP $remote_addr; +            proxy_set_header X-Real-IP $remote_addr; 
-    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
-  proxy_set_header Host $http_host; +            proxy_set_header Host $http_host; 
-  proxy_set_header X-Forwarded-Proto $scheme; +            proxy_set_header X-Forwarded-Proto $scheme; 
-  proxy_pass         http://10.0.0.10:80; +            proxy_pass         http://10.0.0.10:80; 
-   +        
-       ssl_certificate      web.cer; +        ssl_certificate      web.cer; 
-       ssl_certificate_key  web.key; +        ssl_certificate_key  web.key; 
-       ssl_session_cache    shared:SSL:1m; +        ssl_session_cache    shared:SSL:1m; 
-       ssl_session_timeout  5m;      +        ssl_session_timeout  5m;      
-       ssl_prefer_server_ciphers  on; +        ssl_prefer_server_ciphers  on; 
-       ssl_protocols       TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; +        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; 
-       ssl_ciphers    TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:HIGH:!aNULL:!MD5;+        ssl_ciphers    TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:HIGH:!aNULL:!MD5;
     }     }
  
Line 32: Line 32:
 Here is an example configuration for proxying to WS: Here is an example configuration for proxying to WS:
  
-  server { +    server { 
-        listen       11235 ssl; +       listen       11235 ssl; 
-   location / { +       location / { 
-  proxy_set_header X-Real-IP $remote_addr; +           proxy_set_header X-Real-IP $remote_addr; 
-    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
-  proxy_set_header Host $http_host; +           proxy_set_header Host $http_host; 
-  proxy_set_header X-Forwarded-Proto $scheme; +           proxy_set_header X-Forwarded-Proto $scheme; 
-  proxy_pass         http://10.0.0.10:1123; +           proxy_pass         http://10.0.0.10:1123; 
-   }+       }
        ssl_certificate      web.cer;        ssl_certificate      web.cer;
        ssl_certificate_key  web.key;        ssl_certificate_key  web.key;
Line 57: Line 57:
      
 This will cause the fTelnet to timeout (regardless if you are using fTelnet proxy or not).  This will cause the fTelnet to timeout (regardless if you are using fTelnet proxy or not). 
 +
 +===== Using synchronet on non-root url =====
 +
 +Example for run sbbs on /webbbs url
 +
 +
 +    location ^~ /webbbs {
 +        try_files $uri @app;
 +    }
 +    location @app {
 +        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_pass http://127.0.0.1:8088;
 +        proxy_redirect off;
 +        rewrite /webbbs(.*) /$1 break;
 +    }  
 +    # api call seems to be absolute, so you must alias /api/ url's
 +    location /api/ {
 +        proxy_set_header X-Real-IP  $remote_addr;
 +        proxy_set_header X-Forwarded-For $remote_addr;
 +        proxy_set_header Host $host;
 +        proxy_pass http://127.0.0.1:8088/api/;
 +    }
 +
 +    
 +
 +
  
 ===== See Also ===== ===== See Also =====