nginx 403

Ce sujet est résolu
42396
,

Bonjour,

J'ai un conf qui tourne sur mon serveur. J'ai un nom de domaine pour le site principale, et j'utilise 2 sous domaines pour l'api et le backoffice. j'utilise let's encrypt pour le certificat ssl et tout tourne bien.

Je souhaite ajouter un service avec un nouveau sous domaine pour l'instant sans certificat (port 80).

  • https://example.fr #ok
  • https://api.example.fr #ok
  • https://app.example.fr #ok
  • http://test.example.fr # NOT OK

Je tente une conf la plus simple possible, mais rien à faire, j'ai une erreurs 403 et rien dans les logs......

upstream web {
    server localhost:8080;
}
upstream api {
    server localhost:5555;
}

server {
    server_name example.fr;
    location / {
        proxy_pass http://web;
    }
    location /uploads/pictures/ {
        alias /home/admin/gb/pictures/;
        access_log off;
        sendfile on;
        expires max;
        try_files $uri =404;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/example.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.fr/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    gzip on;
    gzip_vary on;
    gzip_min_length 10240;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
}

server {
    server_name api.example.fr;

    location / {
        proxy_pass http://api;
    }
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/api.example.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.example.fr/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
    server_name app.example.fr;

    location / {
        root /home/admin/gb/gb-admin;
        index index.html;
        try_files $uri $uri/ $uri.html /index.html;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/app.example.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.fr/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
    listen 80;
    listen [::]:80;
    server_name app.example.fr;
    return 301 https://app.example.fr$request_uri;
}
########################### HELP ####################################
## cette config me rend fou
server {
    listen 80;
    listen [::]:80;
    server_name test.example.fr;

    location / {
        root /home/admin/gb/gb-admin; #### meme chemin que pour app.example.fr
        index index.html;
        try_files $uri $uri/ $uri.html /index.html;
    }
}
######################################################################"
server {
    server_name www.example.fr;
    return 301 https://example.fr$request_uri;

    listen [::]:443 ssl ipv6only=on;
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/api.example.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.example.fr/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

server {
    if ($host = www.example.fr) {
        return 301 https://$host$request_uri;
    }
    server_name www.example.fr;
    listen 80;
    listen [::]:80;
    return 404;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.fr;
    return 301 https://example.fr$request_uri;
}

notez que les fichiers que je tente de partager sont les même qui marchent sur app.example.fr juste pour voir si c'était un probleme de permissions.
je suis au bout de ma vie, si quelqu'un à la réponse je lui en serai éternellement reconnaissant.

merci d'avance.

2 Réponse

42396
,

En configurant le DNS, ca marche !

voila voila....

42396
,

pour info :

/etc/nginx/nginx.conf :

user www-data;
worker_processes auto;
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_disable "msie6";

    # 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;
}

et aussi, /etc/nginx/conf.d/default.conf :

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name _;
    location / {
        try_files $uri $uri/ =404;
    }
}

Si je tape l'adresse IP de mon serveur, je me retrouve bien avec le fichier html indiqué : /var/www/html/index.nginx-debian.html, pas de 403 ici...
vraiment hate de savoir ce qui cloche...