Page 1 sur 1

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

Publié : jeu. 22 août 2019, 21:55
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

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

Publié : jeu. 22 août 2019, 23:38
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 ?

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

Publié : ven. 23 août 2019, 02:24
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;
#       }
#}

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

Publié : ven. 23 août 2019, 08:41
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...

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

Publié : ven. 23 août 2019, 10:38
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

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

Publié : mer. 28 août 2019, 13:35
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).

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

Publié : mer. 28 août 2019, 14:33
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.

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

Publié : mer. 28 août 2019, 15:17
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/*

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

Publié : mer. 28 août 2019, 15:35
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).

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

Publié : mer. 28 août 2019, 16:12
par freedent
Ha bien voilà, c'est une livebox.
Donc aucune solution ?

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

Publié : mer. 28 août 2019, 16:22
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