Puncte:0

Nginx a fost configurat greșit?

drapel es

Când navighez pe site-ul meu wordpress, acesta va fi redirecționat automat către https.

Cu toate acestea, primesc un TTFB mare și cred că se poate datora unei erori de configurare de bază.

În momentul de față am următoarea configurație, (HTTPS încă funcționează cumva, ceea ce nu înțeleg)

Server {
    asculta 8080 ;
    asculta [::]:8080 ;

    port_in_redirect dezactivat;
    absolute_redirect off;
...

Dacă fac următoarea actualizare

Server {
    asculta 443 ssl;
    asculta [::]:443 ssl ;

    port_in_redirect dezactivat;
    absolute_redirect off;

Site-ul nu mai este accesibil.

Cum funcționează SSL atunci când serverul ascultă în primul rând pe 8080? Nu am niciun 301 în configurația mea

EDITARE: Configurare completă - această versiune de mai jos redirecționează cumva tot traficul corect către https://


Server {
    asculta 8080 ;
    asculta [::]:8080 ;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    large_client_header_buffers 4 64k;
    proxy_max_temp_file_size 0;

    root /home/site/wwwroot;
    index index.php index.html index.htm;
    server_name domain.co.uk www.domain.co.uk;

    access_log off;
    error_log off;

    port_in_redirect dezactivat;
    absolute_redirect off;

    Locație / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # redirecționează paginile de eroare ale serverului către pagina statică /50x.html
    #
    pagina_eroare 500 502 503 504 /50x.html;
    locație = /50x.html {
        rădăcină /html/;
    }

    gzip on;

    gzip_vary on;
    gzip_proxied orice;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_versiunea 1.1;
    gzip_types imagine/svg+xml imagine/x-pictogramă text/plain text/html text/xml text/css text/javascript application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/x -font-ttf application/vnd.ms-fontobject font/opentype font/ttf font/eot font/otf image/vnd.microsoft.icon;

    locație ~* \.(eot|ttf|woff|woff2|webmanifest)$ {
       add_header Acces-Control-Permite-Origine *;
    }

    locație ~* \.(css|js|ico|gif|jpeg|jpg|webp|png|svg|eot|otf|woff|woff2|ttf|ogg)$ {
       expira max;
    }

    locație ~ [^/]\.php(/|$) {

        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param HTTP_PROXY "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param QUERY_STRING $șir_interogare;
        fastcgi_intercept_errors activat;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 3600;
        fastcgi_read_timeout 3600;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }
}

Nikita Kipriyanov avatar
drapel za
Primul caz nu menționează `ssl`. Deci cel mult funcționa în modul text simplu. Pentru ca al doilea caz să funcționeze, trebuie să specificați, de asemenea, cheia privată și lanțul de certificate (nu există nicio indicație în postare că le aveți). Și, vă rog, afișați mesajele Nginx în timpul pornirii și ieșirea `ss -lnpt` după pornire (dacă are succes) în al doilea caz.
drapel us
Vă rugăm să adăugați rezultatul `nginx -T` la întrebare, astfel încât să putem vedea configurația completă a nginx.
Puncte:0
drapel za

Pe port 8080 se trezea fără SSL, în text simplu. Pentru a adăuga SSL, nu este suficient doar schimbarea asculta 8080 în asculta 443 ssl. De asemenea, trebuie să adăugați cel puțin liniile care specifică lanțul de certificate și cheia privată a serverului:

asculta [::]:443 ssl;
asculta 443 ssl;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

Lanțul complet este o simplă concatenare a tuturor certificatelor în forma PEM (care sunt fișiere text cu date codificate în Base64 în interior), primul certificat este cel care corespunde serverului dvs. cheii private, apoi CA emitentul său imediat și așa mai departe, până la dar fără a include rădăcina CA.

Dacă există mai multe nume în certificat (certificatele moderne folosesc întotdeauna subiectAlternativeNames care vă permite să specificați mai mult decât un singur nume de domeniu), depinde de dvs. să le specificați în numele serverului opțiune. Puteți specifica doar nume de server care există în câmpul SAN al certificatului, dar nu vi se cere să le utilizați pe toate.(Dacă specificați altceva decât care există în câmpul SAN, clientul dvs. va afișa o eroare de certificat SSL că nu aparține unui domeniu atunci când accesează serverul dvs. cu acest nume.) În cazul dvs., un certificat trebuie să fie valid cel putin pentru amandoi domeniu.co.uk și www.domain.co.uk.

Vedea Manual HTTPS Nginx pentru detalii. Dacă utilizați certbot (un client ACME) cu pluginul de instalare nginx pentru a obține un certificat, va configura totul automat. Dacă obțineți certificate „de mână”, trebuie să adăugați și manual aceste opțiuni de configurare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.