Puncte:0

Calea de rescrie Nginx

drapel cl
roy

vreau sa rescriu /flask/fișiere/ cale spre /utility/base-cert/flask/files/. Așa că am încercat să urmăresc

        locație /utility/base-cert/ {
            proxy_pass http://base-cert/;
        }

        locație /balon/fișiere/ {
            rescrie ^/flask/files/(.*)$ /utility/base-cert/flask/files/$1 permanent;
        }

baza-cert aplicație (http://base-cert/) este doar pentru a servi câteva fișiere descărcabile.

Dar funcționează numai pentru fișierele txt, dar nu și pentru alte fișiere. În jurnalele văd

10.2.19.165 - - [11/Feb/2022:21:40:52 +0000] „GET /utility/base-cert/flask/files/readme.md HTTP/1.1” 304 0 „-” „Mozilla/5.0 ( Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, ca Gecko) Chrome/98.0.4758.80 Safari/537.36" "x.x.x.x"
10.2.19.165 - - [11/Feb/2022:21:40:58 +0000] „GET /utility/base-cert/flask/files/base.crt HTTP/1.1” 304 0 „-” „Mozilla/5.0 ( Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, ca Gecko) Chrome/98.0.4758.80 Safari/537.36" "x.x.x.x"

În browser văd următoarea eroare

Conținut mixt: site-ul de la „https://dev.example.com/” a fost încărcat printr-o conexiune securizată, dar fișierul de la „https://dev.example.com/utility/base-cert/flask/files/ base.crt' a fost redirecționat printr-o conexiune nesigură. Acest fișier ar trebui să fie difuzat prin HTTPS. Această descărcare a fost blocată. Consultați https://blog.chromium.org/2020/02/protecting-users-from-insecure.html pentru mai multe detalii.

Ieșire Nginx

root@nginx-64fbcf4c54-2dkq7:/# nginx -T
nginx: sintaxa fișierului de configurare /etc/nginx/nginx.conf este ok
nginx: fișierul de configurare /etc/nginx/nginx.conf testul a reușit
# fișier de configurare /etc/nginx/nginx.conf:

utilizator nginx;
worker_proceses auto;

error_log /var/log/nginx/error.log notificare;
pid /var/run/nginx.pid;


evenimente {
    conexiuni_muncitor 1024;
}


http {
    includ /etc/nginx/mime.types;
    aplicație de tip_default/octet-stream;

    log_format principal „$remote_addr - $remote_user [$time_local] „$request” '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

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

    sendfile activat;
    #tcp_nopush on;

    keepalive_timeout 65;

    #gzip activat;

    includ /etc/nginx/conf.d/*.conf;
}

# fișier de configurare /etc/nginx/mime.types:

tipuri {
    text/html html htm shtml;
    text/css css;
    text/xml xml;
    imagine/gif gif;
    imagine/jpeg jpeg jpg;
    aplicație/javascript js;
    aplicație/atom+xml atom;
    aplicație/rss+xml rss;

    text/mathml mml;
    text/txt simplu;
    text/vnd.sun.j2me.app-descriptor jad;
    text/vnd.wap.wml wml;
    text/x-component htc;

    imagine/avif avif;
    imagine/png png;
    imagine/svg+xml svg svgz;
    imagine/tiff tif tiff;
    imagine/vnd.wap.wbmp wbmp;
    imagine/webp webp;
    imagine/x-icoană ico;
    imagine/x-jng jng;
    imagine/x-ms-bmp bmp;

    font/woff woff;
    font/woff2 woff2;

    aplicație/java-arhivă jar war ear;
    aplicație/json json;
    aplicație/mac-binhex40 hqx;
    aplicație/msword doc;
    cerere/pdf pdf;
    aplicație/postscript ps eps ai;
    aplicație/rtf rtf;
    application/vnd.apple.mpegurl m3u8;
    application/vnd.google-earth.kml+xml kml;
    application/vnd.google-earth.kmz kmz;
    application/vnd.ms-excel xls;
    application/vnd.ms-fontobject eot;
    application/vnd.ms-powerpoint ppt;
    application/vnd.oasis.opendocument.graphics odg;
    cerere/vnd.oasis.opendocument.prezentare odp;
    application/vnd.oasis.opendocument.spreadsheet ods;
    application/vnd.oasis.opendocument.text odt;
    application/vnd.openxmlformats-officedocument.presentationml.presentation
                                                     pptx;
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                     xlsx;
    application/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                     docx;
    application/vnd.wap.wmlc wmlc;
    aplicare/wasm wasm;
    aplicație/x-7z-comprimat 7z;
    aplicare/x-cacao cco;
    application/x-java-archive-diff jardiff;
    aplicație/x-java-jnlp-fișier jnlp;
    aplicație/x-makeself rulează;
    application/x-perl pl pm;
    application/x-pilot prc pdb;
    application/x-rar-compressed rar;
    application/x-redhat-package-manager rpm;
    aplicare/x-mare mare;
    aplicație/x-shockwave-flash swf;
    application/x-stuffit sit;
    aplicație/x-tcl tcl tk;
    application/x-x509-ca-cert der pem crt;
    aplicație/x-xpinstall xpi;
    aplicație/xhtml+xml xhtml;
    aplicație/xspf+xml xspf;
    aplicare/zip zip;

    aplicație/octet-stream bin exe dll;
    application/octet-stream deb;
    application/octet-stream dmg;
    application/octet-stream iso img;
    aplicație/octet-stream msi msp msm;

    audio/midi mid midi kar;
    audio/mpeg mp3;
    audio/ogg ogg;
    audio/x-m4a m4a;
    audio/x-realaudio ra;

    video/3gpp 3gpp 3gp;
    video/mp2t ts;
    video/mp4 mp4;
    video/mpeg mpeg mpg;
    video/quicktime mov;
    video/webm webm;
    video/x-flv flv;
    video/x-m4v m4v;
    video/x-mng mng;
    video/x-ms-asf asx asf;
    video/x-ms-wmv wmv;
    video/x-msvideo avi;
}

# fișier de configurare /etc/nginx/conf.d/frontend.dev.lightcl.conf:
limit_req_zone $binary_remote_addr zone=login:10m rate=25r/s;

în amonte uwsgi {
    server uwsgi:9000;
}

amonte de bază-cert {
    server de bază-cert:5000;
}

Server {
    asculta 80 default_server;
    nume_server gazdă locală;
    keepalive_timeout 70;
    gzip on;
    gzip_disable „msie6”;
    gzip_vary on;
    gzip_proxied orice;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_versiunea 1.1;
    gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript;

    Locație / {
         proxy_pass http://frontend-dev.s3-website-us-west-2.amazonaws.com/beta/;
         expiră 30d;
    }

    locație /api/ {
        uwsgi_pass uwsgi://uwsgi;
        include uwsgi_params;
    }

    locație /utility/base-cert/ {
        proxy_pass http://base-cert/;
    }

    locație /balon/fișiere/ {
        rescrie ^/flask/files/(.*)$ /utility/base-cert/flask/files/$1 permanent;
    }

    locație /metrics {
        stub_status;
    }

    locație /stub_status {
        stub_status;
    }

    locație /socket.io/ {
        proxy_pass http://websockets;
        proxy_redirect dezactivat;
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune „upgrade”;
        proxy_set_header Gazdă $gazdă;
        proxy_set_header X-Real-IP $adresă_la distanță;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $schema;
    }
}

Server {
    asculta 443 ssl;
    nume_server gazdă locală;
    keepalive_timeout 70;

    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    gzip on;
    gzip_disable „msie6”;
    gzip_vary on;
    gzip_proxied orice;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_versiunea 1.1;
    gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript;

    locație /vpn/ {
        uwsgi_pass uwsgi://uwsgi;
        include uwsgi_params;
    }
}

# fișier de configurare /etc/nginx/uwsgi_params:

uwsgi_param QUERY_STRING $șir_interogare;
uwsgi_param REQUEST_METHOD $cerere_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;

uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $schemă;
uwsgi_param HTTPS $https dacă_nu_vide;

uwsgi_param REMOTE_ADDR $adresă_la distanță;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

Care ar fi rescrierea corectă?

drapel us
Vă rugăm să adăugați ieșirea lui `nginx -T`, astfel încât să ne putem uita la configurația completă a nginx.
roy avatar
drapel cl
roy
ieșirea adăugată a lui `nginx -T`
drapel us
Unde este gestionat `dev.example.com` în configurația nginx?
roy avatar
drapel cl
roy
Se duce la `proxy_pass http://frontend-dev.s3-website-us-west-2.amazonaws.com/beta/;`
drapel us
Nu poate merge la acel bloc, deoarece `https://dev.example.com` este o adresă URL SSL, iar blocul `server` pentru portul 443 nu are nicio astfel de directivă `proxy_pass`.
roy avatar
drapel cl
roy
Încetarea SSL este gestionată de Traefik.
Puncte:0
drapel us

Trebuie să emiteți redirecționarea cu adresa URL https:

locație /balon/fișiere/ {
    rescrie ^/flask/files/(.*)$ https://$host/utility/base-cert/flask/files/$1 permanent;
}

Chrome spune că destinația de redirecționare a adresei URL are http ca protocol, deci este o conexiune nesigură.

roy avatar
drapel cl
roy
cu aceste fișiere nu se descarcă după ce faceți clic pe el.
drapel us
Care este rezultatul așteptat?
roy avatar
drapel cl
roy
Vreau să se descarce fișiere când dau clic pe el
drapel us
Ah, scuze, citit gresit. Ce se întâmplă când dai clic pe el?
roy avatar
drapel cl
roy
Doar fișierul readme se deschide în browser, pentru alte fișiere nu se întâmplă nimic, mă așteptam să înceapă descărcarea altor fișiere.

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.