[nginx] Accès réseau local domain name (résolu)

Applications, problèmes de configuration réseau
Répondre
freedent
Hankyu
Messages : 15
Inscription : mar. 04 mars 2014, 11:11

[nginx] Accès réseau local domain name (résolu)

Message par freedent »

Bonjour,

Je souhaite mettre un nextcloud accessible depuis l'extérieur et local ( le serveur est chez moi ), pour cela j'ai installé nginx créé un vhost, une redirection en SLL depuis le port 80.
Tout fonctionne mais uniquement depuis l'extérieur, je peux accéder au cloud uniquement avec l'adresse IP.
Lorsque j'essaye avec le nom de domaine depuis le réseau local je me retrouve avec un ERR_CONNECTION_TIMED_OUT et j'imagine que dans les logs ça correspond à cette erreur :

Code : Tout sélectionner

2019/08/19 21:49:08 [warn] 14709#14709: conflicting server name "domainname.org" on 0.0.0.0:443, ignored
Il me semble que c'est simplement une histoire de configuration de proxy_reverse, mais je ne maitrise pas suffisamant et mes différents essais n'ont servis à rien.

Le fichier vhost

Code : Tout sélectionner

upstream php-handler {
    server                        unix:/var/run/nextcloud.sock;
}
 
server {
    listen                        80;
    listen                        [::]:80;
    server_name                   domainanme.org;
 
    # Path to the root of your installation
    root                          /var/www/nextcloud/;
 
    # Add headers to serve security related headers
    add_header                    X-Content-Type-Options nosniff;
    add_header                    X-XSS-Protection "1; mode=block";
    add_header                    X-Robots-Tag none;
    add_header                    X-Download-Options noopen;
    add_header                    X-Permitted-Cross-Domain-Policies none;
    add_header                    Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
 
    location = /robots.txt {
        allow                     all;
        log_not_found             off;
        access_log                off;
    }
 
    location = /.well-known/carddav {
      return                      301 $scheme://$host/remote.php/dav;
    }
 
    location = /.well-known/caldav {
      return                      301 $scheme://$host/remote.php/dav;
    }
 
    # set max upload size
    client_max_body_size          512M;
    fastcgi_buffers               64 4K;
 
    # Enable gzip but do not remove ETag headers
    gzip                          on;
    gzip_vary                     on;
    gzip_comp_level               4;
    gzip_min_length               256;
    gzip_proxied                  expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types                    application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
 
    location / {
        rewrite                   ^ /index.php$uri;
    }
 
    location ~ ^/.well-known/acme-challenge/* {
        allow                     all;
    }
 
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        deny                      all;
    }
 
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        deny                      all;
    }
 
    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+).php(?:$|/) {
        fastcgi_split_path_info   ^(.+.php)(/.*)$;
        include                   fastcgi_params;
        fastcgi_param             SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param             PATH_INFO $fastcgi_path_info;
        fastcgi_param             modHeadersAvailable true;
        fastcgi_param             front_controller_active true;
        fastcgi_pass              php-handler;
        fastcgi_intercept_errors  on;
        fastcgi_request_buffering off;
    }
 
    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files                 $uri/ =404;
        index                     index.php;
    }
 
    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* .(?:css|js|woff|svg|gif)$ {
        try_files                 $uri /index.php$uri$is_args$args;
        add_header                Cache-Control "public, max-age=15778463";
        add_header                X-Content-Type-Options nosniff;
        add_header                X-XSS-Protection "1; mode=block";
        add_header                X-Robots-Tag none;
        add_header                X-Download-Options noopen;
        add_header                X-Permitted-Cross-Domain-Policies none;
        # Optional: Don't log access to assets
        access_log                off;
    }
 
    location ~* .(?:png|html|ttf|ico|jpg|jpeg)$ {
        try_files                 $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log                off;
    }
}
Nom de domaine remplacé pour le forum par domainanme.org

Tutoriel suivis : https://howto.wared.fr/ubuntu-installat ... oud-nginx/

Merci
Dernière modification par freedent le mer. 28 août 2019, 16:23, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx] Accès réseau local domain name

Message par benjarobin »

Bonjour,
Pour le message de Warning, tu dois avoir d'autres fichiers de configuration de nginx, dont un en double.

Pour le reste ce n'est pas très clair, peux tu préciser si l'accès est OK ou non pour les conditions suivantes :
- Depuis l'extérieur avec l'IP publique : OK ?
- Depuis l'extérieur avec le nom de domaine : OK ?
- Depuis le réseau local avec l'IP publique : OK ?
- Depuis le réseau local avec l'IP privée/locale : OK ?
- Depuis le réseau local avec le nom de domaine : OK ?

Le nom de domaine correspond bien à l'IP publique que tu essayes ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
freedent
Hankyu
Messages : 15
Inscription : mar. 04 mars 2014, 11:11

Re: [nginx] Accès réseau local domain name

Message par freedent »

J'ai qu'un seul vhost activé.

- Depuis l'extérieur avec l'IP publique : aucun problème
- Depuis l'extérieur avec le nom de domaine : l'adresse avec le nom de domaine fonctionne ainsi que la redirection https
- Depuis le réseau local avec l'IP publique : ça ne fonctionne pas
- Depuis le réseau local avec l'IP privée/locale : l'adresse ip local ça fonctionne
- Depuis le réseau local avec le nom de domaine : je me retrouve avec un ERR_CONNECTION_TIMED_OUT depuis le navigateur

Désolé si il manque encore des informations.

Le nginx.conf :

Code : Tout sélectionner

user www-data;
worker_processes 4;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       } 
# 
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx] Accès réseau local domain name

Message par benjarobin »

Pour le warning je maintien ce que j'ai dis, tu ne nous as pas donné tous les fichiers.
Quelle est la sortie de

Code : Tout sélectionner

grep -RE "server_name|443"  /etc/nginx/conf.d/ /etc/nginx/sites-enabled/
Pour le reste, ce n'est pas un problème de configuration de nginx, mais un problème avec ta box internet, et tu n'y peux surement rien...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
laurent85
Elfe
Messages : 954
Inscription : mar. 16 oct. 2018, 21:05

Re: [nginx] Accès réseau local domain name

Message par laurent85 »

Bonjour,
Mets l'adresse ip locale pour domainanme.org dans /etc/hosts des pc sur le réseau local ça devrait marcher :

Code : Tout sélectionner

192.168.x.y   domainanme.org
freedent
Hankyu
Messages : 15
Inscription : mar. 04 mars 2014, 11:11

Re: [nginx] Accès réseau local domain name

Message par freedent »

Je n'ai aucun retour de ta commande benjarobin.
Pour les warnings

Pour la modification du fichier hosts ça fonctionne du premier coup, mais je souhaite ne pas le faire pour chaque pc ou téléphone etc...

Il me semble que la solution c'est un proxy reverse (je me trompe surement).
laurent85
Elfe
Messages : 954
Inscription : mar. 16 oct. 2018, 21:05

Re: [nginx] Accès réseau local domain name

Message par laurent85 »

La box est limitée en possibilités de configuration du routage, quand le client est sur le lan ça foire. La solution /etc/hosts ne sera valable que pour les pc fixes du lan, les matériels mobiles type tel ou pc portable la connexion ne marchera plus avec ce /etc/hosts sur le wan.

Seule alternative simple utiliser l'ip locale quand tu es sur le lan. Autre solution à creuser mettre en place sur le lan un resolveur DNS qui renverra l'ip locale pour domainanme.org aux requêtes DNS provenant des machines du lan, ça va dépendre aussi de la box à accepter la configuration d'un autre resolveur dns que celui par défaut du fai.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx] Accès réseau local domain name

Message par benjarobin »

freedent a écrit : mer. 28 août 2019, 13:35Je n'ai aucun retour de ta commande benjarobin.
Ce n'est pas normale, tu devrait avoir à minima le fichier que tu nous as donné... Que donne :

Code : Tout sélectionner

grep -rE "server_name|443"  /etc/nginx/
ls -la /etc/nginx/*
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
hopimet
Elfe
Messages : 996
Inscription : mer. 14 mars 2012, 22:48

Re: [nginx] Accès réseau local domain name

Message par hopimet »

freedent a écrit : ven. 23 août 2019, 02:24 J'ai qu'un seul vhost activé.

- Depuis l'extérieur avec l'IP publique : aucun problème
- Depuis l'extérieur avec le nom de domaine : l'adresse avec le nom de domaine fonctionne ainsi que la redirection https
- Depuis le réseau local avec l'IP publique : ça ne fonctionne pas
- Depuis le réseau local avec l'IP privée/locale : l'adresse ip local ça fonctionne
- Depuis le réseau local avec le nom de domaine : je me retrouve avec un ERR_CONNECTION_TIMED_OUT depuis le navigateur
Si ta box est une livebox play, c'est normal car elle ne permet pas le loopback (l'accès depuis le réseau local à l'aide de l'IP publique).
freedent
Hankyu
Messages : 15
Inscription : mar. 04 mars 2014, 11:11

Re: [nginx] Accès réseau local domain name

Message par freedent »

Ha bien voilà, c'est une livebox.
Donc aucune solution ?
freedent
Hankyu
Messages : 15
Inscription : mar. 04 mars 2014, 11:11

Re: [nginx] Accès réseau local domain name

Message par freedent »

Bon bien ça fonctionne, et ce n'était pas grand chose.
Le problème venait bien de la livebox.
J'ai suivi cette solution : https://forum.ubuntu-fr.org/viewtopic.php?id=2012531
Répondre