dsm 7 e apache reverse proxy

HW e servizi di rete: utilizzo abbinato al NAS (FW, DHCP, (D)DNS, NTP, RADIUS, LDAP, ACTIVE DIRECTORY, VPN CLIENT&SERVER, EZ&ROUTER/WiFi, UPS)
Rispondi
nexus
Utente
Utente
Messaggi: 4
Iscritto il: martedì 2 agosto 2022, 16:14

dsm 7 e apache reverse proxy

Messaggio da nexus »

ciao a tutti abituato a nginx mi sto trovando in difficoltà nel configurare un apache reverse proxy per i servizi web del dsm 7...

parliamo di un DS920+ aggiornato a dsm 7.1-42661 update 1 e una box con debian 11.4 su cui gira apache 2.4.54 che funziona senza problemi da reverse proxy per altri servizi web che girano sulla stessa box, il tutto dietro un mikrotik su linea ftth tiscali quindi ipv4 pubblico (in questo caso statico) con dnat delle tcp 80/443 verso l'ip di lan della box

sul nas ho lasciato la configurazione login portal standard per dsm e per le applicazioni web aggiuntive ho soltanto abilitato le porte custom http

Immagine Immagine

in queste condizioni se al posto di apache uso nginx con questa conf

Codice: Seleziona tutto

server {
	listen 80;
	server_name my.domain.ext;
	return 301 https://$host$request_uri;
}

server {
	listen 443 ssl;
	server_name my.domain.ext;
	include /etc/nginx/ssl.conf;

location / {
	client_max_body_size 0;

	proxy_pass http://x.x.x.x:yyyy; #ip nas + porta dsm oppure porta di uno dei servizi web aggiuntibi
	proxy_http_version 1.1;

	proxy_redirect off;
	proxy_buffering on;
	proxy_read_timeout 60s;
	proxy_max_temp_file_size 0m;

	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 $scheme;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_set_header X-NginX-Proxy true;

	proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
raggiungo e mi loggo senza problemi nella webui dsm (o quella delle applicazioni web aggiuntive) puntando a my.domain.ext

se invece uso apache con varie combinazioni più o meno "creative" bene che vada mi blocco sull'invio della pwd...

Immagine

in definitiva che conf apache corrispettiva a quella ngnix proponete? grazie!
burghy86
Moderatore
Moderatore
Messaggi: 11357
Iscritto il: martedì 11 settembre 2012, 18:59

Re: dsm 7 e apache reverse proxy

Messaggio da burghy86 »

Ma perché non usi il reverse direttamente dalla gui del dsm?
NUOVO CANALE DISCORD
PARTECIPATE NUMEROSI:

https://discord.gg/McP3d4m2pG



Passare dalla sezione presentazioni e leggere il regolamento firma obbligatorio

siamo una community, aiutateci a sentirci parte di qualcosa e non un helpdesk
Non do aiuto in privato ma sul forum a tutti!!
Un grazie ci spinge a lavorare meglio
------------------------------------------------------------
  • UPS: apc
  • GTW: fritzbox o TP-LINK TD-W8970 ISP: [ADSL] intred(20000/1024/0) IP:[pubblico]
  • SWC: hp gigabit 8 porte with poe
  • NAS: ds213, ds213j, ds415+ 720+ dmv dal 6.2 alla 7. qnap ts212p ts22, all hd con wdred/ironwolf da 2/6tb
  • CLI: win 10, win11 e ubuntu
    [altro]
  • 3 smartphone android, lettore bd with allshare samsung, vodafone tv, raspberry p2 e p3
nexus
Utente
Utente
Messaggi: 4
Iscritto il: martedì 2 agosto 2022, 16:14

Re: dsm 7 e apache reverse proxy

Messaggio da nexus »

eh beh perché come spiegato nel messaggio d'apertura il setting attuale prevede che il ruolo di reverse proxy sia svolto da apache ed ovviamente il dnat dedicato si può fare soltanto verso un host alla volta...poi chiaro che spostare di peso la funzione di reverse proxy al synology (oppure sostituire nginx ad apache) risolverebbe lo specifico problema (poi bisognerebbe valutare le singole configurazioni degli altri servizi web dietro reverse, non è esclusa qualche conseguente magagna) e allora non sarei nemmeno intervenuto sul forum :D ma ad oggi chi mi ha chiesto un parere in merito ha intenzione di rimanere con apache... :?
nexus
Utente
Utente
Messaggi: 4
Iscritto il: martedì 2 agosto 2022, 16:14

Re: dsm 7 e apache reverse proxy

Messaggio da nexus »

se può essere d'aiuto a qualche volonteroso per darmi uno spunto queste sono conf nginx relative alla webui dsm (sulla porta http)

Codice: Seleziona tutto

server {
        listen  5000;
        listen  [::]:5000;

        root    /usr/syno/synoman/;
        index   index.cgi index.html index.htm;

        location = / {
            try_files $uri /index.cgi$is_args$query_string;
        }

        location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ {
            internal;

            root /;
        }

        location ~ \.cgi {
            scgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            scgi_param  CONTENT_LENGTH     $content_length;
            scgi_param  SCRIPT_NAME        $fastcgi_script_name;
            scgi_param  REQUEST_METHOD     $request_method;
            scgi_param  REQUEST_URI        $request_uri;
            scgi_param  QUERY_STRING       $query_string;
            scgi_param  CONTENT_TYPE       $content_type;
            scgi_param  DOCUMENT_URI       $document_uri;
            scgi_param  DOCUMENT_ROOT      $document_root;
            scgi_param  SCGI               1;
            scgi_param  SERVER_PROTOCOL    $server_protocol;
            scgi_param  HTTPS              $https if_not_empty;
            scgi_param  GATEWAY_INTERFACE  CGI/1.1;
            scgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
            scgi_param  REMOTE_ADDR        $remote_addr;
            scgi_param  REMOTE_PORT        $remote_port;
            scgi_param  SERVER_ADDR        $server_addr;
            scgi_param  SERVER_PORT        $server_port;
            scgi_param  SERVER_NAME        $host;

            fastcgi_split_path_info        ^(.+?\.cgi)(.*)$;
            scgi_param  PATH_INFO          $fastcgi_path_info;

            scgi_intercept_errors          on;
            scgi_read_timeout              3600s;
            scgi_pass                      synoscgi;
        }

        location /wfmlogindialog.js {
            alias /usr/syno/synoman/webfm/webUI/directlogin.js;
        }

        error_page 403 404 500 502 503 504 /dsm_error_page;

        location /dsm_error_page {
            internal;
            root /usr/syno/share/nginx;
            rewrite (.*) /error.html break;
        }

        location ~ ^/webman/modules/Indexer/ {
            deny all;
        }

        location ~ ^/webapi/lib/ {
            deny all;
        }

        location ~ ^/webapi/(:?(:?.*)\.lib|(:?.*)\.api|(:?.*)\.auth|lib.def)$ {
            deny all;
        }

        location ~ /\. { access_log off; log_not_found off; deny all; }
    }

Codice: Seleziona tutto

server {
        listen 5000 default_server;
        listen [::]:5000 default_server;

        server_name _;

        gzip on;

        include conf.d/alias.*.conf;
        root /usr/syno/synoman;
        index index.cgi;

        ignore_invalid_headers off;

        include /usr/syno/share/nginx/conf.d/dsm.*.conf;
        include conf.d/dsm.*.conf;

        location = / {
            try_files $uri /index.cgi$is_args$query_string;
        }

        location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ {
            internal;

            root /;

            open_file_cache off;

            include conf.d/x-accel.*.conf;
        }

        location ~ /webman/modules/(PersonalSettings|ExternalDevices|FileBrowser)/index_ds.php$ {
            alias /usr/syno/share/OAuth/index_ds.php;
            default_type text/html;
        }

        location ~ \.cgi {
            include     scgi_params;
            scgi_pass   synoscgi;

            scgi_read_timeout   3600s;
        }

        location ~ /synoscgi.sock/socket.io/ {
            proxy_read_timeout   3600s;
            include proxy.conf;
            rewrite /synoscgi.sock/(.*)$ /$1 break;
            proxy_set_header Connection $connection_upgrade;
            proxy_pass http://synoscgi.sock;

        }

        error_page 403 404 500 502 503 504 /dsm_error_page;

        location /dsm_error_page {
            internal;
            root /usr/syno/share/nginx;
            rewrite (.*) /error.html break;
            allow all;
        }

        location ~ ^/webman/modules/Indexer/ {
            deny all;
        }

        location ~ ^/webapi/lib/ {
            deny all;
        }

        location ~ ^/webapi/(:?(:?.*)\.lib|(:?.*)\.api|(:?.*)\.auth|lib.def)$ {
            deny all;
        }

        location ~ /\. { access_log off; log_not_found off; deny all; }

        location ~* \.(?:js|css|png|jpg|gif|ico)$ {
            access_log off;
            log_not_found off;
        }

        location = /favicon.ico {
            access_log off;
            log_not_found off;
        }

        location = /robots.txt {
            allow all;
            access_log off;
            log_not_found off;
        }

    }
Rispondi

Torna a “Networking - Servizi e apparecchi di rete (cablaggio e config)”