1 votes

Pourquoi nginx redirige-t-il vers des URL avec un slash de fin de ligne ?

J'ai mis en place un proxy inverse pour permettre l'accès à notre logiciel CD via HTTPS.

Voici ma configuration :

server {
        listen          443;
        server_name     build.example.com;

        ssl_certificate           /etc/ssl/certs/example.com.crt;
        ssl_certificate_key       /etc/ssl/private/example.com.key;

        ssl                       on;
        ssl_session_cache         builtin:1000 shared:SSL:10m;
        ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers               HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_prefer_server_ciphers on;

        access_log                /var/log/nginx/example.access.log;

        location / {
                proxy_set_header    Host $host;
                proxy_set_header    X-Real-IP $remote_addr;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header    X-Forwarded-Proto $scheme;

                proxy_pass          http://localhost:7777;
                proxy_read_timeout  90;

                proxy_redirect      http://localhost:7777 https://build.example.com;
        }
        location /socket.io/ {
                proxy_pass          http://localhost:7777;
                proxy_http_version  1.1;
                proxy_set_header    Upgrade $http_upgrade;
                proxy_set_header    Connection "upgrade";
        }
}

J'ai maintenant mis en place un webhook GitHub pour communiquer avec notre CD lorsque nous poussons de nouveaux commits vers GitHub. Mais GitHub reçoit une réponse 301 lorsqu'il essaie d'invoquer le webhook.

La demande de /api/github/webhook reçoit une réponse de redirection 301 vers /api/github/webhook/ et GitHub n'aime pas ça.

Je ne comprends pas pourquoi nginx envoie cette réponse. Comment puis-je faire en sorte qu'il envoie la demande à l'application CD qui fait l'objet d'une procuration ?

1voto

Peter Carlos Points 613

Il y avait une erreur de configuration http/https dans notre configuration CD.

Nous utilisons strider et vous devez lui indiquer l'emplacement de votre service avec la balise SERVER_NAME variable d'environnement. J'ai mis le nom d'hôte correct, mais j'ai oublié de remplacer http con https .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X