[Résolu] Besoin d'aide pour reverse proxy nginx

Besoin d'aide pour reverse proxy nginx [Résolu] - Réseaux - Réseaux grand public / SoHo

Marsh Posté le 31-03-2018 à 08:09:02    

Résolu, c'était un problème de cache du navigateur  [:cerveau boulay]  
 
Bonjour  [:sanpe':2]  
 
J'ai à la maison un routeur Asus sur lequel j'ai installé Entware. Le but était d'installer sur le routeur un reverse proxy NginX pour me permettre d'accéder depuis l'extérieur à toute une série de services web hébergés sur des machines derrière le routeur. J'ai réussi après plusieurs essais infructueux à faire fonctionner le truc.
 
Sauf pour un service :/ Je me doute que le problème est bête, et que je dois m'y prendre mal, mais je ne comprends pas tout.
 
Le service en question est un petit serveur apache sur un Odroid C2 qui fait tourner COPS, une interface pour les ebooks. Cet accès est protégé par une authentification basique HTTP.
 
Si j'accède à COPS en local, pas de soucis.
Si j'accède à COPS via le reverse proxy, j'ai une erreur 404 :/
 
Halp pleaz  [:halp]  
 
(Si je ne suis pas dans la bonne cat ou sous cat, je change hein :o )
Extrait de apache2.conf :

Code :
  1. ServerName localhost
  2. <VirtualHost *:5432>
  3.     DocumentRoot /var/www/COPS
  4.     <Directory /var/www/COPS>
  5.         AuthType Basic
  6.         AuthName "Restricted Content"
  7.         AuthUserFile /etc/apache2/.htpasswd
  8.         Require valid-user
  9.         Options Indexes MultiViews FollowSymLinks
  10.         AllowOverride None
  11.         Order allow,deny
  12.         Allow from all
  13.     </Directory>
  14. </VirtualHost>


 
Extrait de nginx.conf

Code :
  1. user  nobody;
  2. worker_processes  1;
  3. #error_log  /opt/var/log/nginx/error.log;
  4. #error_log  /opt/var/log/nginx/error.log  notice;
  5. #error_log  /opt/var/log/nginx/error.log  info;
  6. #pid        /opt/var/run/nginx.pid;
  7. events {
  8.     worker_connections  64;
  9. }
  10. http {
  11.     include       mime.types;
  12.     default_type  application/octet-stream;
  13. server_names_hash_bucket_size  64;
  14.     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  15.     #                  '$status $body_bytes_sent "$http_referer" '
  16.     #                  '"$http_user_agent" "$http_x_forwarded_for"';
  17.     #access_log  /opt/var/log/nginx/access.log main;
  18.     sendfile        on;
  19.     server {
  20.         listen       80;
  21.         server_name  localhost;
  22.         location / {
  23.             root   /opt/share/nginx/html;
  24.             index  index.html index.htm;
  25.         }
  26.         error_page  404              /404.html;
  27.         error_page   500 502 503 504  /50x.html;
  28.         location = /50x.html {
  29.             root   html;
  30.         }
  31.     }
  32.     server {
  33.         listen 80;
  34.         server_name *.pouet.com;
  35.         return 301 https://$host$request_uri;
  36.     }
  37.     # HTTPS default website
  38.     server {
  39.         listen       443;
  40.         server_name  localhost;
  41.         ssl                  on;
  42.         ssl_certificate      cert.crt;
  43.         ssl_certificate_key  cert.key;
  44.         ssl_session_timeout  5m;
  45.         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  46.         ssl_ciphers  HIGH:!aNULL:!MD5;
  47.         ssl_prefer_server_ciphers   on;
  48.         location / {
  49.             root   html;
  50.             index  index.html index.htm;
  51.         }
  52.     }
  53. server {
  54.         listen       443;
  55.         server_name  ebooks.pouet.com;
  56.         ssl                  on;
  57.         ssl_certificate      cert.crt;
  58.         ssl_certificate_key  cert.key;
  59.         ssl_session_timeout  5m;
  60.         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
  61.         ssl_ciphers  HIGH:!aNULL:!MD5;
  62.         ssl_prefer_server_ciphers   on;
  63.         location / {
  64.             proxy_pass http://192.168.0.20:5432;
  65.             proxy_set_header Host $host;
  66.             proxy_set_header X-Forwarded-For $remote_addr;
  67.         }
  68. }
  69. }


Message édité par SanPe' le 31-03-2018 à 23:58:45

---------------
"Vous avez beau travailler dur, devenir intelligent, on se rappellera toujours de vous pour la mauvaise raison."
Reply

Marsh Posté le 31-03-2018 à 08:09:02   

Reply

Marsh Posté le 31-03-2018 à 11:24:15    

est ce que le port 5432 peut sortir sur le wan?

Reply

Marsh Posté le 31-03-2018 à 11:35:26    

Ben y'a l'UPnP activé sur le routeur, mais y'a pas de règle précise qui route vers le 5432, non.
Mais c'est pareil pour tous les autres serveurs, et tous fonctionnent sauf celui là.


---------------
"Vous avez beau travailler dur, devenir intelligent, on se rappellera toujours de vous pour la mauvaise raison."
Reply

Marsh Posté le 31-03-2018 à 13:05:07    

Que disent tes logs apache ?

Message cité 1 fois
Message édité par kaari le 31-03-2018 à 13:05:23

---------------
Mon topic ventes ;)
Reply

Marsh Posté le 31-03-2018 à 15:41:46    

Si apache fonctionne localement, je suppose que tu as ajouté une directive 'Listen 5432' dans le fichier de configuration d'apache.
 
Tu accèdes donc localement à ton site de cette façon: http://localhost:5432 ?
 
Tu devrais décommenter les directives "error_log de nginx" et voir les messages retournés.

Message cité 1 fois
Message édité par Beta-Pictoris le 31-03-2018 à 15:51:30
Reply

Marsh Posté le 31-03-2018 à 18:26:59    

kaari a écrit :

Que disent tes logs apache ?


Effectivement, j'aurais dû commencer par là...
Je viens de regarder, ils sont tous (error, access) vides :/

Beta-Pictoris a écrit :

Si apache fonctionne localement, je suppose que tu as ajouté une directive 'Listen 5432' dans le fichier de configuration d'apache.


La seule modif que j'ai faite au fichier de configuration d'apache c'est celle que j'ai postée plus haut :

Code :
  1. ServerName localhost
  2.     <VirtualHost *:5432>
  3.         DocumentRoot /var/www/COPS
  4.         <Directory /var/www/COPS>
  5.             AuthType Basic
  6.             AuthName "Restricted Content"
  7.             AuthUserFile /etc/apache2/.htpasswd
  8.             Require valid-user
  9.             Options Indexes MultiViews FollowSymLinks
  10.             AllowOverride None
  11.             Order allow,deny
  12.             Allow from all
  13.         </Directory>
  14.     </VirtualHost>


Donc oui, j'ai fait écouter le 5432 par apache. Mais je ne sais pas si c'est vraiment ta question :sweat:

Beta-Pictoris a écrit :

Tu accèdes donc localement à ton site de cette façon: http://localhost:5432 ?


Pas tout à fait, apache est sur une autre machine (OC2) que nginx (router Asus). Donc j'y accède en http://192.168.0.20:5432 (soit l'adresse de l'OC2).

Beta-Pictoris a écrit :

Tu devrais décommenter les directives "error_log de nginx" et voir les messages retournés.


:jap: Voici ce que me dit nginx:

Code :
  1. 2018/03/31 18:06:51 [info] 26990#0: *1 client 192.168.0.2 closed keepalive connection
  2. 2018/03/31 18:06:51 [error] 26990#0: *2 "/opt/html/index.html" is not found (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET / HTTP/1.1", host: "pouet.com"
  3. 2018/03/31 18:06:51 [error] 26990#0: *2 "/opt/html/index.html" is not found (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET / HTTP/1.1", host: "pouet.com"
  4. 2018/03/31 18:06:51 [error] 26990#0: *2 "/opt/html/index.html" is not found (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET / HTTP/1.1", host: "pouet.com"
  5. 2018/03/31 18:06:51 [error] 26990#0: *2 open() "/opt/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "pouet.com"
  6. 2018/03/31 18:06:51 [error] 26990#0: *2 open() "/opt/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "pouet.com"
  7. 2018/03/31 18:06:51 [error] 26990#0: *2 open() "/opt/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "pouet.com"
  8. 2018/03/31 18:06:51 [error] 26990#0: *2 open() "/opt/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "pouet.com"
  9. 2018/03/31 18:06:51 [error] 26990#0: *2 open() "/opt/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "pouet.com"
  10. 2018/03/31 18:06:51 [error] 26990#0: *2 open() "/opt/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.2, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "pouet.com"


192.168.0.2, c'est mon pc principal. Du coup j'ai essayé avec mon téléphone, sur le réseau wifi, pour voir si c'est le cas avec tous les clients, je n'avais pas fait le test. Et ça fonctionne correctement... Donc, c'est bien, mais j'avoue ne pas comprendre ce qu'il se passe :??:


Message édité par SanPe' le 31-03-2018 à 18:27:36

---------------
"Vous avez beau travailler dur, devenir intelligent, on se rappellera toujours de vous pour la mauvaise raison."
Reply

Marsh Posté le 31-03-2018 à 18:55:25    

Rien dans les logs apaches sur OC2 => requêtes pas routées vers apache => problème config nginx ou routage.
 
Selon nginx, lorsque tu request pouet.com, nginx cherche dans /opt/html, est-ce que par hasard, /opt/share/nginx/html ne serait pas un lien symbolique vers /opt/html ? (ou l'inverse ?)
 
Si tel est le cas, ca veut dire que nginx utilise la configuration server ligne 29, au lieu de celle ligne 47 ?
 
Alors, je me trompe peut-etre mais si tu remplace "*" dans "server_name *.pouet.com" par n'importe quel chaine de caractere, "pouet.com" ne rentre pas dedans, ".pouet.com" oui.
 
Si tu essaye "server_name *.pouet.com pouet.com;" ca te donne quoi ?
 
EDIT: best ndd ever


Message édité par kaari le 31-03-2018 à 18:59:22

---------------
Mon topic ventes ;)
Reply

Marsh Posté le 31-03-2018 à 23:40:01    

Décommente aussi la directive 'access_log'. On devrait voir des messages relatif aux connexions sur le port 443 de ton routeur nginx.
 
Je suppose que ton routeur a une adresse ip locale en 192.168.0.* et se trouve sur le même réseau que ton odroid c2 ?


Message édité par Beta-Pictoris le 31-03-2018 à 23:47:21
Reply

Marsh Posté le 31-03-2018 à 23:52:40    

Je viens d'essayer, ça ne change rien.

 

Mais en fait, je viens de trouver... Purée, c'était super simple :/ En vidant le cache du navigateur ça fonctionne [:jeanlucpicard] ²²²²²

 

Je suis désolé, et je vous remercie tous pour vos réponses... [:haha jap]


Message édité par SanPe' le 31-03-2018 à 23:54:25

---------------
"Vous avez beau travailler dur, devenir intelligent, on se rappellera toujours de vous pour la mauvaise raison."
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed