Điểm:0

Đường dẫn viết lại Nginx

lá cờ cl
roy

tôi muốn viết lại /bình/tệp/ đường dẫn đến /utility/base-cert/flask/files/. Vì vậy, tôi đã cố gắng làm theo

        vị trí /tiện ích/cơ sở-cert/ {
            proxy_pass http://base-cert/;
        }

        vị trí /flask/files/ {
            viết lại ^/flask/files/(.*)$ /utility/base-cert/flask/files/$1 vĩnh viễn;
        }

chứng chỉ cơ sở ứng dụng (http://base-cert/) chỉ để phục vụ một số tệp có thể tải xuống.

Nhưng nó chỉ hoạt động với các tệp txt chứ không hoạt động với các tệp khác. Trong nhật ký tôi thấy

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, như 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, như Gecko) Chrome/98.0.4758.80 Safari/537.36" "x.x.x.x"

Trong trình duyệt tôi thấy lỗi sau

Nội dung hỗn hợp: Trang web tại 'https://dev.example.com/' đã được tải qua kết nối an toàn nhưng tệp tại 'https://dev.example.com/utility/base-cert/flask/files/ base.crt' đã được chuyển hướng qua một kết nối không an toàn. Tệp này phải được phân phát qua HTTPS. Tải xuống này đã bị chặn. Xem https://blog.chromium.org/2020/02/protecting-users-from-insecure.html để biết thêm chi tiết.

Đầu ra Nginx

root@nginx-64fbcf4c54-2dkq7:/# nginx -T
nginx: cú pháp file cấu hình /etc/nginx/nginx.conf là ok
nginx: file cấu hình /etc/nginx/nginx.conf kiểm tra thành công
# tập tin cấu hình /etc/nginx/nginx.conf:

người dùng nginx;
worker_processes tự động;

thông báo error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;


sự kiện {
    công_nhân kết_nối 1024 ;
}


http {
    bao gồm /etc/nginx/mime.types;
    ứng dụng default_type/octet-stream;

    log_format chính '$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 chính;

    gửi tệp trên;
    #tcp_nopush bật;

    keepalive_timeout 65;

    #gzip trên;

    bao gồm /etc/nginx/conf.d/*.conf;
}

# tập tin cấu hình /etc/nginx/mime.types:

các loại {
    văn bản/html html htm shtml;
    văn bản/css css;
    văn bản/xml xml;
    hình ảnh/gif gif;
    hình ảnh/jpeg jpeg jpg;
    ứng dụng/javascript js;
    ứng dụng/nguyên tử + nguyên tử xml;
    ứng dụng/rss+xml rss;

    văn bản/toán học mml;
    văn bản/txt đơn giản;
    text/vnd.sun.j2me.app-descriptor jad;
    text/vnd.wap.wml wml;
    văn bản/x-thành phần htc;

    hình ảnh/avif avif;
    hình ảnh/png png;
    hình ảnh/svg+xml svg svgz;
    hình ảnh/tiff tif tiff;
    image/vnd.wap.wbmp wbmp;
    hình ảnh/webp webp;
    hình ảnh/biểu tượng x ico;
    hình ảnh/x-jng jng;
    hình ảnh/x-ms-bmp bmp;

    phông chữ/woff woff;
    phông chữ/woff2 woff2;

    ứng dụng/java-archive jar chiến tai;
    ứng dụng/json json;
    ứng dụng/mac-binhex40 hqx;
    tài liệu ứng dụng/msword;
    ứng dụng/pdf pdf;
    ứng dụng/tái bút ps eps ai;
    ứng dụng/rtf rtf;
    ứng dụng/vnd.apple.mpegurl m3u8;
    ứng dụng/vnd.google-earth.kml+xml kml;
    ứng dụng/vnd.google-earth.kmz kmz;
    ứng dụng/vnd.ms-excel xls;
    ứng dụng/vnd.ms-fontobject eot;
    application/vnd.ms-powerpoint ppt;
    ứng dụng/vnd.oasis.opendocument.graphics odg;
    application/vnd.oasis.opendocument.presentation odp;
    ứng dụng/vnd.oasis.opendocument.spreadsheet ods;
    ứng dụng/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
                                                     tài liệu;
    ứng dụng/vnd.wap.wmlc wmlc;
    ứng dụng/wasm wasm;
    ứng dụng/x-7z-nén 7z;
    ứng dụng/x-ca cao cco;
    ứng dụng/x-java-archive-diff jardiff;
    ứng dụng/x-java-jnlp-tệp jnlp;
    ứng dụng/x-makeself chạy;
    ứng dụng/x-perl pl chiều;
    ứng dụng/x-pilot prc pdb;
    ứng dụng/x-rar-rar nén;
    ứng dụng/x-redhat-gói-quản lý rpm;
    ứng dụng/x-biển biển;
    ứng dụng/x-shockwave-flash swf;
    ứng dụng/x-stuffit ngồi;
    ứng dụng/x-tcl tcl tk;
    ứng dụng/x-x509-ca-cert der pem crt;
    ứng dụng/x-xpinstall xpi;
    ứng dụng/xhtml+xml xhtml;
    ứng dụng/xspf+xml xspf;
    ứng dụng/zip zip;

    ứng dụng/octet-stream bin exe dll;
    gỡ lỗi ứng dụng/octet-stream;
    ứng dụng/octet-stream dmg;
    ứng dụng/octet-stream iso img;
    ứng dụng/octet-stream msi msp msm;

    âm thanh/midi mid midi kar;
    âm thanh/mpeg mp3;
    âm thanh/ogg ogg;
    âm thanh/x-m4a m4a;
    âm thanh/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;
}

# tệp cấu hình /etc/nginx/conf.d/frontend.dev.lightcl.conf:
limit_req_zone $binary_remote_addr zone=login:10m rate=25r/s;

ngược dòng uwsgi {
    máy chủ uwsgi:9000;
}

chứng chỉ cơ sở ngược dòng {
    chứng chỉ cơ sở máy chủ: 5000;
}

người phục vụ {
    nghe 80 default_server;
    máy chủ_tên máy chủ cục bộ;
    keepalive_timeout 70;
    bật gzip;
    gzip_disable "msie6";
    bật gzip_vary;
    gzip_proxied bất kỳ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    văn bản gzip_types/văn bản thuần túy/ứng dụng css/ứng dụng json/ứng dụng x-javascript/văn bản javascript/ứng dụng xml/ứng dụng xml/xml+văn bản rss/javascript;

    địa điểm / {
         proxy_pass http://frontend-dev.s3-website-us-west-2.amazonaws.com/beta/;
         hết hạn 30d;
    }

    vị trí /api/ {
        uwsgi_pass uwsgi://uwsgi;
        bao gồm uwsgi_params;
    }

    vị trí /tiện ích/cơ sở-cert/ {
        proxy_pass http://base-cert/;
    }

    vị trí /flask/files/ {
        viết lại ^/flask/files/(.*)$ /utility/base-cert/flask/files/$1 vĩnh viễn;
    }

    vị trí /số liệu {
        sơ khai_trạng thái;
    }

    vị trí /stub_status {
        sơ khai_trạng thái;
    }

    vị trí /socket.io/ {
        proxy_pass http://websockets;
        proxy_redirect tắt;
        proxy_http_version 1.1;
        proxy_set_header Nâng cấp $http_upgrade;
        proxy_set_header Kết nối "nâng cấp";
        proxy_set_header Máy chủ lưu trữ $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;
    }
}

người phục vụ {
    nghe 443 ssl;
    máy chủ_tên máy chủ cục bộ;
    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 CAO:!aNULL:!MD5;

    bật gzip;
    gzip_disable "msie6";
    bật gzip_vary;
    gzip_proxied bất kỳ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    văn bản gzip_types/văn bản thuần túy/ứng dụng css/ứng dụng json/ứng dụng x-javascript/văn bản javascript/ứng dụng xml/ứng dụng xml/xml+văn bản rss/javascript;

    vị trí /vpn/ {
        uwsgi_pass uwsgi://uwsgi;
        bao gồm uwsgi_params;
    }
}

# tập tin cấu hình /etc/nginx/uwsgi_params:

uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_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 $scheme;
uwsgi_param HTTPS $https if_not_empty;

uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

Điều gì sẽ là viết lại chính xác?

lá cờ us
Vui lòng thêm đầu ra của `nginx -T` để chúng tôi có thể xem cấu hình nginx đầy đủ.
roy avatar
lá cờ cl
roy
đầu ra đã thêm của `nginx -T`
lá cờ us
`dev.example.com` được xử lý ở đâu trong cấu hình nginx?
roy avatar
lá cờ cl
roy
Nó chuyển đến `proxy_pass http://frontend-dev.s3-website-us-west-2.amazonaws.com/beta/;`
lá cờ us
Nó không thể đi đến khối đó, vì `https://dev.example.com` là một URL SSL và khối `máy chủ` cho cổng 443 không có bất kỳ chỉ thị `proxy_pass` nào như vậy.
roy avatar
lá cờ cl
roy
Traefik xử lý việc chấm dứt SSL.
Điểm:0
lá cờ us

Bạn cần thực hiện chuyển hướng với URL https:

vị trí /flask/files/ {
    viết lại ^/flask/files/(.*)$ https://$host/utility/base-cert/flask/files/$1 vĩnh viễn;
}

Chrome thông báo rằng đích chuyển hướng của URL có http là giao thức, do đó nó là một kết nối không an toàn.

roy avatar
lá cờ cl
roy
với các tệp này không được tải xuống sau khi nhấp vào nó.
lá cờ us
kết quả được mong đợi là gì?
roy avatar
lá cờ cl
roy
Tôi muốn các tập tin tải xuống khi tôi nhấp vào nó
lá cờ us
À xin lỗi, đọc nhầm. Điều gì đang xảy ra khi bạn nhấp vào nó?
roy avatar
lá cờ cl
roy
Chỉ tệp readme mở trong trình duyệt, đối với tệp khác không có gì xảy ra, tôi đã mong các tệp khác bắt đầu tải xuống.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.