Score:0

Nginx เขียนเส้นทางใหม่

ธง cl
roy

ฉันต้องการเขียนใหม่ /ขวด/ไฟล์/ เส้นทางสู่ /utility/base-cert/ขวด/files/. ผมก็เลยลองทำตาม

        ตำแหน่ง / ยูทิลิตี้ / ฐานใบรับรอง / {
            proxy_pass http://base-cert/;
        }

        ตำแหน่ง /ขวด/ไฟล์/ {
            เขียนใหม่ ^/flask/files/(.*)$ /utility/base-cert/flask/files/$1 ถาวร;
        }

ใบรับรองฐาน แอป (http://base-cert/) เป็นเพียงการให้บริการไฟล์ที่ดาวน์โหลดได้บางไฟล์

แต่มันใช้งานได้เฉพาะกับไฟล์ txt แต่ไม่ใช่สำหรับไฟล์อื่น ในบันทึกที่ฉันเห็น

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 เช่น 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 เช่น Gecko) Chrome/98.0.4758.80 Safari/537.36" "x.x.x.x"

ในเบราว์เซอร์ ฉันเห็นข้อผิดพลาดต่อไปนี้

เนื้อหาผสม: ไซต์ที่ 'https://dev.example.com/' ถูกโหลดผ่านการเชื่อมต่อที่ปลอดภัย แต่ไฟล์ที่ 'https://dev.example.com/utility/base-cert/flask/files/ base.crt' ถูกเปลี่ยนเส้นทางผ่านการเชื่อมต่อที่ไม่ปลอดภัย ไฟล์นี้ควรให้บริการผ่าน HTTPS การดาวน์โหลดนี้ถูกบล็อก ดู https://blog.chromium.org/2020/02/protecting-users-from-insecure.html สำหรับรายละเอียดเพิ่มเติม

เอาต์พุต Nginx

root@nginx-64fbcf4c54-2dkq7:/# nginx -T
nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:

ผู้ใช้ nginx;
worker_processes อัตโนมัติ

error_log /var/log/nginx/error.log ประกาศ;
pid /var/run/nginx.pid;


เหตุการณ์ {
    worker_connections 1024;
}


http {
    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request"'
                      '$สถานะ $body_bytes_sent "$http_referer"'
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log หลัก;

    ส่งไฟล์บน;
    #tcp_nopush บน;

    keepalive_timeout 65;

    #gzip บน;

    รวม /etc/nginx/conf.d/*.conf;
}

# ไฟล์กำหนดค่า /etc/nginx/mime.types:

ประเภท {
    ข้อความ/html html htm shtml;
    ข้อความ/css css;
    ข้อความ/xml xml;
    รูปภาพ/gif gif;
    รูปภาพ/jpeg jpeg jpg;
    แอปพลิเคชัน/จาวาสคริปต์ js;
    แอ็พพลิเคชัน/atom+xml อะตอม;
    แอปพลิเคชัน/rss+xml rss;

    ข้อความ/mathml mml;
    ข้อความ/ธรรมดา txt;
    text/vnd.sun.j2me.app-descriptor jad;
    ข้อความ/vnd.wap.wml wml;
    ข้อความ/x-คอมโพเนนต์ htc;

    ภาพ/avif avif;
    รูปภาพ/png png;
    ภาพ/svg+xml svg svgz;
    รูปภาพ/tiff tif tiff;
    ภาพ/vnd.wap.wbmp wbmp;
    รูปภาพ/เว็บเพจ เว็บเพจ;
    ไอคอนรูปภาพ/x-icon;
    ภาพ/x-jng jng;
    ภาพ/x-ms-bmp bmp;

    ตัวอักษร/woff woff;
    ตัวอักษร/woff2 woff2;

    แอปพลิเคชัน / java-archive jar war ear;
    แอปพลิเคชัน/json json;
    แอปพลิเคชัน/mac-binhex40 hqx;
    เอกสารแอปพลิเคชัน/msword;
    ใบสมัคร/pdf pdf;
    ใบสมัคร/postscript ps eps ai;
    แอปพลิเคชัน/rtf rtf;
    แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
    application/vnd.google-earth.kml+xml kml;
    แอปพลิเคชัน/vnd.google-earth.kmz kmz;
    แอปพลิเคชัน/vnd.ms-excel xls;
    application/vnd.ms-fontobject eot;
    แอปพลิเคชัน/vnd.ms-powerpoint ppt;
    แอปพลิเคชัน/vnd.oasis.opendocument.graphics odg;
    แอปพลิเคชัน/vnd.oasis.opendocument.presentation odp;
    application/vnd.oasis.opendocument.spreadsheet ods;
    แอปพลิเคชัน/vnd.oasis.opendocument.text odt;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.presentation
                                                     pptx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                                                     xlsx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document
                                                     docx;
    แอปพลิเคชัน/vnd.wap.wmlc wmlc;
    ใบสมัคร/wasm wasm;
    แอปพลิเคชัน/x-7z-บีบอัด 7z;
    ใบสมัคร/x-cocoa cco;
    แอปพลิเคชัน/x-java-archive-diff jardiff;
    แอปพลิเคชัน/x-java-jnlp-file jnlp;
    เรียกใช้แอปพลิเคชัน / x-makeself;
    แอปพลิเคชัน/x-perl pl pm;
    แอปพลิเคชัน/x-pilot prc pdb;
    แอปพลิเคชั่น/x-rar-บีบอัด rar;
    แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
    ใบสมัคร / ทะเล x-sea;
    แอปพลิเคชั่น/x-shockwave-แฟลช swf;
    แอปพลิเคชั่น / นั่ง x-stuffit;
    ใบสมัคร/x-tcl tcl tk;
    ใบสมัคร/x-x509-ca-cert จาก pem crt;
    แอปพลิเคชัน/x-xpinstall xpi;
    แอปพลิเคชัน/xhtml+xml xhtml;
    แอปพลิเคชัน/xspf+xml xspf;
    แอปพลิเคชั่น / ซิปซิป;

    แอปพลิเคชัน / octet-stream bin exe dll;
    แอ็พพลิเคชัน/octet-stream deb;
    แอปพลิเคชัน/octet-stream dmg;
    แอปพลิเคชั่น/octet-stream iso img;
    แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;

    เสียง/midi กลาง midi kar;
    เสียง/mpeg mp3;
    เสียง/ogg ogg;
    เสียง/x-m4a m4a;
    เสียง/x-realaudio ra;

    วิดีโอ/3gpp 3gpp 3gp;
    วิดีโอ/mp2t ts;
    วิดีโอ/mp4 mp4;
    วิดีโอ/mpeg mpeg mpg;
    วิดีโอ/quicktime mov;
    วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
    วิดีโอ/x-flv flv;
    วิดีโอ/x-m4v m4v;
    วิดีโอ/x-mng mng;
    วิดีโอ/x-ms-asf asx asf;
    วิดีโอ/x-ms-wmv wmv;
    วิดีโอ/x-msvideo avi;
}

# ไฟล์การกำหนดค่า /etc/nginx/conf.d/frontend.dev.lightcl.conf:
limit_req_zone $binary_remote_addr zone=เข้าสู่ระบบ:อัตรา 10m=25r/s;

ต้นน้ำ uwsgi {
    เซิร์ฟเวอร์ uwsgi:9000;
}

ใบรับรองฐานอัปสตรีม {
    ใบรับรองฐานเซิร์ฟเวอร์: 5,000;
}

เซิร์ฟเวอร์ {
    ฟัง 80 default_server;
    server_name localhost;
    keepalive_timeout 70;
    เปิด gzip;
    gzip_disable "msie6";
    gzip_vary บน;
    gzip_proxyed ใด ๆ ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    ข้อความ gzip_types/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/แอปพลิเคชัน x-javascript/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;

    ที่ตั้ง / {
         proxy_pass http://frontend-dev.s3-website-us-west-2.amazonaws.com/beta/;
         หมดอายุ 30d;
    }

    ตำแหน่ง /api/ {
        uwsgi_pass uwsgi://uwsgi;
        รวม uwsgi_params;
    }

    ตำแหน่ง / ยูทิลิตี้ / ฐานใบรับรอง / {
        proxy_pass http://base-cert/;
    }

    ตำแหน่ง /ขวด/ไฟล์/ {
        เขียนใหม่ ^/flask/files/(.*)$ /utility/base-cert/flask/files/$1 ถาวร;
    }

    สถานที่ / เมตริก {
        stub_status;
    }

    ตำแหน่ง /stub_status {
        stub_status;
    }

    ตำแหน่ง /socket.io/ {
        proxy_pass http://websockets;
        ปิด proxy_redirect;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อ "อัปเกรด";
        proxy_set_header โฮสต์ $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

เซิร์ฟเวอร์ {
    ฟัง 443 ssl;
    server_name localhost;
    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 สูง:!aNULL:!MD5;

    เปิด gzip;
    gzip_disable "msie6";
    gzip_vary บน;
    gzip_proxyed ใด ๆ ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    ข้อความ gzip_types/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/แอปพลิเคชัน x-javascript/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;

    ตำแหน่ง /vpn/ {
        uwsgi_pass uwsgi://uwsgi;
        รวม uwsgi_params;
    }
}

# ไฟล์กำหนดค่า /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 โครงการ $;
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;

การเขียนซ้ำที่ถูกต้องคืออะไร ?

us flag
โปรดเพิ่มผลลัพธ์ของ `nginx -T` เพื่อให้เราสามารถดูการกำหนดค่า nginx แบบเต็มได้
roy avatar
cl flag
roy
เพิ่มเอาต์พุตของ `nginx -T`
us flag
`dev.example.com` จัดการที่ไหนในการกำหนดค่า nginx
roy avatar
cl flag
roy
ไปที่ `proxy_pass http://frontend-dev.s3-website-us-west-2.amazonaws.com/beta/;'
us flag
ไม่สามารถไปที่บล็อกนั้นได้ เนื่องจาก `https://dev.example.com` เป็น SSL URL และบล็อก 'เซิร์ฟเวอร์' สำหรับพอร์ต 443 ไม่มีคำสั่ง 'proxy_pass' ดังกล่าว
roy avatar
cl flag
roy
การยกเลิก SSL จัดการโดย Traefik
Score:0
ธง us

คุณต้องออกการเปลี่ยนเส้นทางด้วย https URL:

ตำแหน่ง /ขวด/ไฟล์/ {
    เขียนใหม่ ^/flask/files/(.*)$ https://$host/utility/base-cert/flask/files/$1 ถาวร;
}

Chrome กำลังแจ้งว่าปลายทางการเปลี่ยนเส้นทางของ URL มี http เป็นโปรโตคอล ดังนั้นจึงเป็นการเชื่อมต่อที่ไม่ปลอดภัย

roy avatar
cl flag
roy
โดยที่ไฟล์นี้จะไม่ได้รับการดาวน์โหลดหลังจากคลิกที่มัน
us flag
ผลลัพธ์ที่คาดหวังคืออะไร?
roy avatar
cl flag
roy
ฉันต้องการให้ดาวน์โหลดไฟล์เมื่อฉันคลิกที่มัน
us flag
อ่า ขอโทษครับ อ่านผิด จะเกิดอะไรขึ้นเมื่อคุณคลิก
roy avatar
cl flag
roy
เฉพาะไฟล์ readme ที่เปิดในเบราว์เซอร์ สำหรับไฟล์อื่นๆ ไม่มีอะไรเกิดขึ้น ฉันคาดว่าไฟล์อื่นๆ จะเริ่มดาวน์โหลด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา