Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/11/2017, à 10:44

lilp

Reverse Proxy

Bonjour,
J'ai plusieurs VM sur mon réseau local qui héberge pour certaines des services webs, comme par exemple Nextcloud, Organizr.
J'ai créer un nom de domaine chez noip comme suivant XxX.ddns.net.
En suivant ces tutos :
https://techarea.fr/certificat-ssl-grat … s-encrypt/ et https://techarea.fr/tuto-nextcloud-debian-nginx/ pour mettre en place NextCloud et avoir un certificat letsencrypt.
J'ai mit en place une redirection de ports sur ma box des ports 80 et 443 vers l'adresse locale de nextcloud.
J'y accède donc par le biais XxX.ddns.net/nextcloud.

Simplement j'aimerais avoir aussi accès aux autres services web hébergés sur d'autres VM.
J'aimerais donc qu'en tapant XxX.ddns.net/Organizr je soit rediriger vers l'IP locale de cette VM, XxX.ddns.net/test vers une autre VM et ainsi de suite.

J'aimerais donc savoir comment procéder.

Je me suis installer une VM Nginx sur la quelle j'ai tenté quelque chose du genre :
/etc/nginx/sites-availables/XxX.ddns.net

server {

    listen 80;
    server_name www.trucbidule.fr trucbidule.fr;

    # Ici on désactive les access_log pour ne pas faire doublon avec Apache
    access_log off;
    #access_log /var/log/nginx/default.access.log;

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}


location / {
    proxy_pass http://192.168.0.100:80/;
    proxy_cache cache;
    proxy_cache_valid 12h;
    expires 12h;
    proxy_cache_use_stale error timeout invalid_header updating;
}


location ~*^.+(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
    proxy_pass http://192.168.0.100:80;
    proxy_cache cache;
    proxy_cache_valid 2d;
    expires max;
}


location ^~ (^/admin|^/identification) {
    proxy_pass http://192.168.0.100:80;
}

error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 500 501 502 503 504 505 506 507 /error.html;

location = /error.html {
    root /var/www/nginx-default;
}
}




server {

    listen 80;
    server_name www.trucbidule.fr/toto trucbidule.fr/toto;

    # Ici on désactive les access_log pour ne pas faire doublon avec Apache
    access_log off;
    #access_log /var/log/nginx/default.access.log;

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}


location / {
    proxy_pass http://192.168.0.50:80/;
    proxy_cache cache;
    proxy_cache_valid 12h;
    expires 12h;
    proxy_cache_use_stale error timeout invalid_header updating;
}


location ~*^.+(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
    proxy_pass http://192.168.0.50:80;
    proxy_cache cache;
    proxy_cache_valid 2d;
    expires max;
}


location ^~ (^/admin|^/identification) {
    proxy_pass http://192.168.0.50:80;
}

error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 500 501 502 503 504 505 506 507 /error.html;

location = /error.html {
    root /var/www/nginx-default;
}
}




server {

    listen 80;
    server_name www.trucbidule.fr/tata trucbidule.fr/tata;

    # Ici on désactive les access_log pour ne pas faire doublon avec Apache
    access_log off;
    #access_log /var/log/nginx/default.access.log;

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}


location / {
    proxy_pass http://192.168.0.20/tata;
    proxy_cache cache;
    proxy_cache_valid 12h;
    expires 12h;
    proxy_cache_use_stale error timeout invalid_header updating;
}


location ~*^.+(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
    proxy_pass http://192.168.0.20/tata;
    proxy_cache cache;
    proxy_cache_valid 2d;
    expires max;
}


location ^~ (^/admin|^/identification) {
    proxy_pass http://192.168.0.20/tata;
}

error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 500 501 502 503 504 505 506 507 /error.html;

location = /error.html {
    root /var/www/nginx-default;
}
}

J'ai ensuite rediriger les ports 80 et 443 vers l'ip locale de cette VM.
J'ai bien accès quand je tape XxX.ddns.net, mais pas avec les sous domaines.


Boitié : Silvertstone Grandria GD06B/Alimentation : Antec Earthwatts Green 380W/Ram : 4Go Kingston ValueRam DDRII PC6400/CG : MSI GeForce GT610 2Go/HDD OS: Seagate Barracuda SATA 2TB 3.5in. HDD/CM :  Intel D946gzis/HDD Data: 2*4To de WD avec 64Mo de cache et 7200trs/mns.
Rsync des data sur 2HDD USB de 2*2To/Timeshift de l'os/Owncloud+Serveur ProjectZomboid+Plex+VPN+Flexget

Hors ligne

#2 Le 27/11/2017, à 12:17

gael_robert

Re : Reverse Proxy

Salut, solution simple mise en place chez moi pour les mêmes raison.
Tu prend un vm 1vcore, 1go de ram, un petit debian9 et ca :
https://technique.arscenic.org/lamp-lin … er-en-tout
Et pour ton certificat, c'est sur cette VM, pas besoin des autres, tes proxy seront en http.
Exemple chez moi :

    <VirtualHost *:80>
            ServerAdmin postmaster@domaine.tld
            ServerName domaine.tld
            ProxyPass / [url]http://192.168.1.2/[/url]
            ProxyPassReverse / [url]http://192.168.1.2/[/url]
            ProxyPreserveHost On
RewriteEngine on
RewriteCond %{SERVER_NAME} =domaine.tld
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
    </VirtualHost>

Modération : merci d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 27/11/2017, à 12:23)

Hors ligne

#3 Le 27/11/2017, à 15:03

HPIR40

Re : Reverse Proxy

Bonjour

Je dois être trop nul car franchement faire un reverse proxy sous nginx, je n'ai pas réussi à le faire

Par contre avec apache2 après quelques petites heures de boulot c'était en place et opérationnel.

Hors ligne

#4 Le 04/12/2017, à 16:23

lilp

Re : Reverse Proxy

J'ai réussi à installer mon reverse proxy sur mon container debian 9.0 spécificique. Voici ma config nginx : https://pastebin.com/pPKQjDdk
Avec cette config, j'ai accès à l'ensemble de mes applus à part Rutorrent qui ne communique pas avec Rtorrent, j'ai la pop-up d'identification puis une belle erreur :  Bad response from server: (404 [error,list]

J'ai tenter de mettre en place un certificat sur cette nginx et mit en place la config suivante nginx : https://pastebin.com/YBesZSKp
Via cette conf, je n'ai plus accès à Medusa, rutorrent toujours le même soucis. Et j'ai une erreur 504 avec le client Owncloud alors que j'ai bien accès à l'interface via la webgui.


Boitié : Silvertstone Grandria GD06B/Alimentation : Antec Earthwatts Green 380W/Ram : 4Go Kingston ValueRam DDRII PC6400/CG : MSI GeForce GT610 2Go/HDD OS: Seagate Barracuda SATA 2TB 3.5in. HDD/CM :  Intel D946gzis/HDD Data: 2*4To de WD avec 64Mo de cache et 7200trs/mns.
Rsync des data sur 2HDD USB de 2*2To/Timeshift de l'os/Owncloud+Serveur ProjectZomboid+Plex+VPN+Flexget

Hors ligne

#5 Le 19/12/2017, à 12:52

lilp

Re : Reverse Proxy

Je n'arrive toujours pas à avoir accès à Rtorrent depuis l'extérieur avec cette dernière configuration Nginx https://pastebin.com/7b6aTTGY et le fichier .rtorrent.rc : https://pastebin.com/upCbid9j
J'ai la popup d'identification quand je vais sur XXX..../rutorrent, puis j'ai le message :

Bad response from server: (404 [error,list]) <html> <head><title>404 Not Found</title></head> <body bgcolor="white"> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.10.3</center> </body> </html> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> [19.12.2017 10:47:11] FILE MANAGER ignited


Boitié : Silvertstone Grandria GD06B/Alimentation : Antec Earthwatts Green 380W/Ram : 4Go Kingston ValueRam DDRII PC6400/CG : MSI GeForce GT610 2Go/HDD OS: Seagate Barracuda SATA 2TB 3.5in. HDD/CM :  Intel D946gzis/HDD Data: 2*4To de WD avec 64Mo de cache et 7200trs/mns.
Rsync des data sur 2HDD USB de 2*2To/Timeshift de l'os/Owncloud+Serveur ProjectZomboid+Plex+VPN+Flexget

Hors ligne