Score:0

ไม่สามารถเข้าสู่ระบบผ่าน webdav บน nginx

ธง cn

แก้ไข Nextcloud สร้างการนำ Webdav ของตัวเองมาใช้ในชื่อ Sabredav

อาจเป็นโมดูล nginx ต่อไปนี้ที่รบกวนหรือไม่ --ด้วย-http_dav_module --add-module=/var/tmp/nginx-dav-ext-module

มีคนรู้ว่าฉันควรรวบรวมพวกเขาแบบไดนามิกอย่างไร ดังนั้นฉันจึงสามารถโหลด/ยกเลิกการโหลดบนรันไทม์ต่อการกำหนดค่าโฮสต์เสมือนได้หรือไม่

ขอบคุณ :) แก้ไข สิ้นสุด

ฉันกำลังวิ่ง เซิร์ฟเวอร์อูบุนตู 20.04 บนเซิร์ฟเวอร์ส่วนบุคคลที่ฉันปรับใช้การติดตั้งด้วยตนเองของ เน็กซ์คลาวด์ ที่ขึ้นและทำงานอย่างถูกต้องยกเว้น เว็บดาฟ.

สิ่งทั้งหมดกำลังทำงานภายใต้ nginx 1.19.3, php-8.0 และ เอฟพีเอ็ม.

กำลังพยายามเมานต์ไดเร็กทอรีส่วนตัวของ nextcloud ผ่าน davfs:

# เมานต์ -t davfs https://drive.example.com/remote.php/dav/files/myuser/ /mnt
โปรดป้อนชื่อผู้ใช้เพื่อยืนยันตัวตนกับเซิร์ฟเวอร์
https://drive.example.com/remote.php/dav/files/myuser/ หรือกด Enter สำหรับไม่มี
  ชื่อผู้ใช้: myuser
โปรดป้อนรหัสผ่านเพื่อตรวจสอบผู้ใช้ myuser กับเซิร์ฟเวอร์
https://drive.example.com/remote.php/dav/files/myuser/ หรือกด Enter สำหรับไม่มี
  รหัสผ่าน:
/sbin/mount.davfs: การติดตั้งล้มเหลว
ไม่สามารถรับรองความถูกต้องกับเซิร์ฟเวอร์: ปฏิเสธการท้าทายพื้นฐาน

บันทึก Nextcloud ที่เกี่ยวข้องกับก่อนหน้า ภูเขา สั่งการ:

# cat /home/nginx/Tools/nextcloud_data/nextcloud.log
{"reqId":"gf8ZgEQVDV7AoHp667YG","level":2,"time":"2022-04-05T17:50:58+00:00","remoteAddr":"x.y.z.w","user":"-- ","app":"core","method":"OPTIONS","url":"/remote.php/dav/files/myuser/","message":"การเข้าสู่ระบบล้มเหลว: 'myuser' (IP ระยะไกล : 'x.y.z.w')","userAgent":"davfs2/1.5.5 นีออน/0.30.2","version":"23.0.3.2"}

บันทึก Nginx ที่เกี่ยวข้องกับก่อนหน้านี้ ภูเขา สั่งการ:

# cat /var/log/nginx/nextcloud.log
x.y.z.w drive.example.com - [05/Apr/2022:13:53:31 -0400] "OPTIONS /remote.php/dav/files/myuser/ HTTP/1.1" 401 569 "-" "davfs2/1.5.5 นีออน/0.30.2" "-" "-"
x.y.z.w drive.example.com myuser [05/Apr/2022:13:53:57 -0400] "OPTIONS /remote.php/dav/files/myuser/ HTTP/1.1" 401 427 "-" "davfs2/1.5.5 นีออน/0.30.2" "-" "CRYPTED_PASSWORD พื้นฐาน"

ข้อมูล Ubuntu ที่ไม่เกี่ยวข้อง:

# lsb_release -a
ไม่มีโมดูล LSB
รหัสผู้จัดจำหน่าย: Ubuntu
คำอธิบาย: Ubuntu 20.04.4 LTS
เผยแพร่: 20.04
ชื่อรหัส: โฟกัส

# uname -a
Linux host.example.com 5.4.0-107-generic #121-Ubuntu SMP พฤ. 24 มี.ค. 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

ดาวน์โหลดและรวบรวม Nginx จากแบบฟอร์มต้นฉบับ nginx repo อย่างเป็นทางการและผ่าน apt:

# แหล่ง apt nginx
# ซีดี nginx-0.8.54
# แก้ไขเดเบียน/กฎ
# dpkg-buildpackage -b nginx

งินซ์ เวอร์ชัน คุณลักษณะ และพารามิเตอร์การรวบรวม:

# nginx -vV
รุ่น nginx: nginx/1.19.3
สร้างโดย gcc 9.3.0 (Ubuntu 9.3.0-10ubuntu2)
สร้างด้วย OpenSSL 1.1.1g 21 เม.ย. 2020
เปิดใช้งานการสนับสนุน TLS SNI
กำหนดค่าอาร์กิวเมนต์: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx. conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/ nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/ var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module - -กับ-http_flv_module --กับ-http_gunzip_module --กับ-http_gzip_static_module --กับ-http_mp4_module --กับ-http_random_index_module --กับ-http_realip_module --กับ-http_secure_link_module --กับ-http_slice_module --กับ-http_ssl_module --กับ-http_stub_status_module - -กับ-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug -prefix-map=/var/tmp/nginx-1.19.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-B symbolic-functions -Wl,-z,relro -Wl, -z, ตอนนี้ -Wl, - ตามต้องการ -pie' --add-dynamic-module=/var/tmp/ngx_http_geoip2_module --with-http_geoip_module --with-http_dav_module --add-module=/var/tmp/ nginx-dav-ext-module --without-mail_imap_module --without-mail_pop3_module --without-mail_smtp_module --without-http_limit_conn_module --add-module=/var/tmp/incubator-pagespeed-ngx-1.13.35.2-stable/ --add-module=/home/nginx/Tools/openproject/.rbenv/versions/2.6.1//lib/ruby/gems/2.6.0//gems/passenger-6.0.6/src/nginx_module/

พี.เอช.พี ข้อมูล:

# php8.0 --version
PHP 8.0.15 (cli) (สร้าง: 29 ม.ค. 2565 07:24:52 น.) ( NTS )
ลิขสิทธิ์ (c) กลุ่ม PHP
Zend Engine v4.0.15, ลิขสิทธิ์ (c) Zend Technologies
    ด้วย Zend OPcache v8.0.15 ลิขสิทธิ์ (c) โดย Zend Technologies


#php8.0 -ม
[โมดูล PHP]
แอป
พ.ศ
bz2
ปฏิทิน
แกน
คแบบ
ขด
วันที่
โดม
EXIF
เอฟเอฟไอ
ข้อมูลไฟล์
กรอง
เอฟทีพี
ก
รับข้อความ
จีเอ็มพี
กัญชา
ไอคอน
อิกไบนารี่
จินตนาการ
ระหว่างประเทศ
เจสัน
libxml
mbstring
เมมแคช
มองโกบ
มายเอสคิวลี
มายเอสคิวแอล
opensl
พีซีทีแอล
พีซีอาร์
สพป
pdo_mysql
pdo_sqlite
ฟาร์
โพสซิกซ์
สะกด
อ่านไลน์
เรดดิส
การสะท้อน
การประชุม
กุ้ง
SimpleXML
สบู่
ซ็อกเก็ต
โซเดียม
ส.ป.ล
sqlite3
มาตรฐาน
sysvmsg
ระบบ
ระบบ
โทเค็นไนเซอร์
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
ซิป
ซลิบ

[โมดูล Zend]
Zend OPcache

เน็กซ์คลาวด์ ข้อมูล:

# sudo -u nginx php8.0 /home/nginx/Tools/nextcloud/occ สถานะ
  - ติดตั้ง: จริง
  - รุ่น: 23.0.3.2
  - เวอร์ชันสตริง: 23.0.3
  - รุ่น:
  - การบำรุงรักษา: เท็จ
  - needDbUpgrade: เท็จ
  - ชื่อผลิตภัณฑ์: Nextcloud
  - ExtendedSupport: เท็จ

ไฟล์โฮสต์เสมือน Nginx:

# cat /etc/nginx/sites-enabled/nextcloud.conf

cat /etc/nginx/sites-enabled/nextcloud.conf
ตัวจัดการ php ต้นน้ำ {
    เซิร์ฟเวอร์ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
}

# ตั้งค่าตัวเลือกการควบคุมแคช 'ไม่เปลี่ยนรูป' เฉพาะสำหรับเนื้อหาที่มีอาร์กิวเมนต์ `v` ที่ทำลายแคช
แผนที่ $arg_v $asset_immutable {
    """";
    เริ่มต้น "ไม่เปลี่ยนรูป";
}

เซิร์ฟเวอร์ {
    ฟัง 80;
    ฟัง [::]:80;
    server_name drive.foobar.es drive.foobar.com cloud.foobar.es cloud.foobar.com cloud.example.es cloud.example.com cloud.example.net cloud.example.org cloud.example.info drive.example es drive.example.com drive.example.org drive.example.net drive.example.info drive.example.cat cloud.example.cat;

    access_log /var/log/nginx/nextcloud.access.log หลัก;
    error_log /var/log/nginx/nextcloud.error.log วิกฤต;

    ส่งคืน 301 https://$host$request_uri;
# ส่งคืน 302 https://$host$request_uri;
}

เซิร์ฟเวอร์ {
    ฟัง 443 ssl http2;
    ฟัง [::]:443 ssl http2;
    server_name drive.foobar.es drive.foobar.com cloud.foobar.es cloud.foobar.com cloud.example.es cloud.example.com cloud.example.net cloud.example.org cloud.example.info drive.example es drive.example.com drive.example.org drive.example.net drive.example.info drive.example.cat cloud.example.cat;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    รวม /etc/nginx/conf.d-enabled/ssl-security.conf;
    ssl_trusted_certificate /etc/letsencrypt/live/example.es/cert.pem;

    access_log /var/log/nginx/nextcloud_ssl.access.log หลัก;
    error_log /var/log/nginx/nextcloud_ssl.error.log วิกฤต;

    # Codi ต่อคนคุ้นเคย la renovació dels certificat Letsencrypt
    รวม /etc/nginx/snippets/letsencrypt-cert-renewal-dir.conf;

    ถ้า ($http_host != "drive.example.com" ) {
    เขียนใหม่ ^ https://drive.example.com$request_uri ถาวร;
    หยุดพัก;
    }

    # การตั้งค่า HSTS
    # คำเตือน: เพิ่มตัวเลือกโหลดล่วงหน้าเมื่อคุณอ่านเท่านั้น
    # ผลที่ตามมาใน hstspreload.org ตัวเลือกนี้
    # จะเพิ่มโดเมนลงในรายการฮาร์ดโค้ดที่จัดส่ง
    # ในเบราว์เซอร์หลักทั้งหมดและถูกลบออกจากรายการนี้
    #อาจใช้เวลาหลายเดือน
    #add_header การขนส่งที่เข้มงวด-ความปลอดภัย "อายุสูงสุด=15768000; includeSubDomains; โหลดล่วงหน้า;" เสมอ;

    ตำแหน่ง = /robots.txt {
        อนุญาตทั้งหมด
        ปิด log_not_found;
        access_log off;
    }

    # สร้างข้อยกเว้น regex สำหรับ `/.well-known` เพื่อให้ลูกค้ายังคงสามารถ
    # เข้าถึงได้แม้จะมีกฎ regex อยู่ก็ตาม
    # `location ~ /(\.|autotest|...)` ซึ่งจะจัดการคำขอ
    # สำหรับ `/.ที่รู้จักกันดี`
    ที่ตั้ง ^~ /.well-known {
        # กฎในบล็อกนี้เป็นการปรับกฎ
        # ใน `.htaccess` ที่เกี่ยวข้องกับ `/.well-known`

        สถานที่ = /.well-known/carddav { ส่งคืน 301 /remote.php/dav/; }
        สถานที่ = /.well-known/caldav { ส่งคืน 301 /remote.php/dav/; }

        สถานที่ /.well-known/acme-challenge { try_files $uri $uri/ =404; }
        ตำแหน่ง /.well-known/pki-validation { try_files $uri $uri/ =404; }

        # ให้ API ของ Nextcloud สำหรับ `/.well-known` URIs จัดการอื่นๆ ทั้งหมด
        # คำขอโดยส่งไปยังตัวควบคุมส่วนหน้า
        ส่งคืน 301 /index.php$request_uri;
    }

#สถานที่ ^~ / {
    # กำหนดขนาดการอัปโหลดสูงสุดและเพิ่มการหมดเวลาการอัปโหลด:
    client_max_body_size 50G;
    client_body_timeout 300 วินาที;
    fastcgi_buffers 64 4K;

    client_body_temp_path /home/nginx/Tools/nextcloud_data/tmp/;
    fastcgi_param PHP_VALUE "upload_tmp_dir=/home/nginx/Tools/nextcloud_data/tmp/;";
    fastcgi_param PHP_VALUE "output_buffering=0;";
    add_header X-Accel-ไม่มีบัฟเฟอร์;

    # เนื่องจาก php-fpm ไม่สามารถอ่านการตั้งค่า PHP ใน .htaccess การตั้งค่าเหล่านี้ได้
    # ต้องตั้งค่าใน nextcloud/.user.ini
    # fastcgi_param PHP_VALUE "upload_max_filesize=5M;\n error_reporting=E_ALL;";
    fastcgi_param PHP_VALUE "upload_max_filesize=50G;";
    fastcgi_param PHP_VALUE "post_max_size=50G;";
    fastcgi_param PHP_VALUE "max_input_time=4600;";
    fastcgi_param PHP_VALUE "max_execution_time=3600;";
    fastcgi_param PHP_VALUE "request_terminate_timeout=3600;";
    fastcgi_read_timeout 3600;

    # เปิดใช้งาน gzip แต่อย่าลบส่วนหัว ETag
    เปิด gzip;
    gzip_vary บน;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied หมดอายุ ไม่มีแคช ไม่มีที่เก็บส่วนตัว no_last_modified no_etag รับรองความถูกต้อง;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font- แอปพลิเคชัน ttf/x-web-app-manifest+json แอปพลิเคชัน/xhtml+xml แอปพลิเคชัน/แบบอักษร xml/ภาพ opentype/ภาพ bmp/svg+ภาพ xml/ข้อความไอคอน x/ข้อความแคชรายการ/ข้อความ css/ข้อความล้วน/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

    # Pagespeed ไม่รองรับ Nextcloud ดังนั้นหากเซิร์ฟเวอร์ของคุณถูกสร้างขึ้น
    # ด้วยโมดูล `ngx_pagespeed` ให้ยกเลิกการแสดงความคิดเห็นในบรรทัดนี้เพื่อปิดใช้งาน
    ปิดเพจสปีด;

    # ส่วนหัวการตอบสนอง HTTP ยืมมาจาก Nextcloud `.htaccess`
    add_header Referrer-Policy "no-referrer" เสมอ;
    add_header X-Content-Type-Options "nosniff" เสมอ;
    add_header X-ดาวน์โหลด-ตัวเลือก "noopen" เสมอ;
    add_header X-Frame-Options "SAMEORIGIN" เสมอ
    add_header X-อนุญาตข้ามโดเมน-นโยบาย "ไม่มี" เสมอ;
    add_header X-Robots-Tag "ไม่มี" เสมอ;
    add_header X-XSS-Protection "1; mode=block" เสมอ;

    # ลบ X-Powered-By ซึ่งเป็นข้อมูลรั่วไหล
    fastcgi_hide_header X-ขับเคลื่อนโดย;

    # เส้นทางไปยังรูทของการติดตั้งของคุณ
    รูท /home/nginx/Tools/nextcloud/;

    # ระบุวิธีจัดการไดเร็กทอรี -- ระบุ `/index.php$request_uri`
    # ที่นี่เป็นทางเลือกหมายความว่า Nginx แสดงพฤติกรรมที่ต้องการเสมอ
    # เมื่อลูกค้าร้องขอเส้นทางที่สอดคล้องกับไดเร็กทอรีที่มีอยู่
    #บนเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่ง หากไดเร็กทอรีนั้นมีไฟล์ index.php
    # ไฟล์นั้นถูกเสิร์ฟอย่างถูกต้อง หากไม่เป็นเช่นนั้น คำขอจะถูกส่งต่อไปยัง
    #ตัวควบคุมส่วนหน้า พฤติกรรมที่สม่ำเสมอนี้หมายความว่าเราไม่ต้องการ
    # เพื่อระบุกฎที่กำหนดเองสำหรับบางเส้นทาง (เช่น รูปภาพและเนื้อหาอื่นๆ
    # `/updater`, `/ocm-provider`, `/ocs-provider`) และด้วยเหตุนี้
    # `try_files $uri $uri/ /index.php$request_uri`
    #ให้พฤติกรรมที่ต้องการเสมอ
    ดัชนี index.php index.html /index.php$request_uri;

    # กฎที่ยืมมาจาก `.htaccess` เพื่อจัดการไคลเอนต์ Microsoft DAV
    ที่ตั้ง = / {
        ถ้า ( $http_user_agent ~ ^DavClnt ) {
            ส่งคืน 302 /remote.php/webdav/$is_args$args;
        }
    }

    # กฎที่ยืมมาจาก `.htaccess` เพื่อซ่อนบางเส้นทางจากลูกค้า
    ตำแหน่ง ~ ^/(?:build|tests|config|lib|3rdparty| templates|data)(?:$|/) { ส่งคืน 404; }
    ตำแหน่ง ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { ส่งคืน 404; }

    # ตรวจสอบให้แน่ใจว่าบล็อกนี้ซึ่งส่งผ่านไฟล์ PHP ไปยังกระบวนการ PHP อยู่เหนือบล็อก
    # ซึ่งจัดการสินทรัพย์คงที่ (ตามที่เห็นด้านล่าง) หากบล็อกนี้ไม่ถูกประกาศก่อน
    # จากนั้น Nginx จะพบการเขียนวนซ้ำไม่สิ้นสุดเมื่อเติม `/index.php`
    # ไปยัง URI ส่งผลให้เกิดการตอบสนองข้อผิดพลาด HTTP 500
    ตำแหน่ง ~ \.php(?:$|/) {
        # จำเป็นสำหรับการสนับสนุนแบบดั้งเดิม
        เขียนใหม่ ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|. +\/richdocumentscode\/proxy) /index.php$request_uri;

        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        ตั้ง $path_info $fastcgi_path_info;

        try_files $fastcgi_script_name =404;

        รวม fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param เปิด HTTPS;

        fastcgi_param modHeadersAvailable จริง; # หลีกเลี่ยงการส่งส่วนหัวความปลอดภัยสองครั้ง
        fastcgi_param front_controller_active จริง; # เปิดใช้งาน URL ที่สวยงาม
        fastcgi_pass php-ตัวจัดการ;

        เปิด fastcgi_intercept_errors;
        ปิด fastcgi_request_buffering;

        fastcgi_max_temp_file_size 0;
    }

   ตำแหน่ง ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ {
        try_files $uri /index.php$request_uri;
        add_header การควบคุมแคช "สาธารณะ, max-age=15778463, $asset_immutable";
        access_log off; # ทางเลือก: อย่าบันทึกการเข้าถึงเนื้อหา

        ตำแหน่ง ~ \.wasm$ {
            แอปพลิเคชัน default_type/wasm;
        }
    }

    ตำแหน่ง ~ \.woff2?$ {
        try_files $uri /index.php$request_uri;
        หมดอายุ 7d; # นโยบายการควบคุมแคชที่ยืมมาจาก `.htaccess`
        access_log off; # ทางเลือก: อย่าบันทึกการเข้าถึงเนื้อหา
    }

    # การระงับข้อความบันทึกï
    # หากคุณเห็นข้อความที่ไม่มีความหมายในไฟล์บันทึกของคุณ เช่น ไคลเอ็นต์ถูกปฏิเสธโดยการกำหนดค่าเซิร์ฟเวอร์: /var/www/data/htaccesstest.txt ให้เพิ่มส่วนนี้ในการกำหนดค่า nginx ของคุณเพื่อระงับข้อความเหล่านี้:
    สถานที่ = /data/htaccesstest.txt {
        อนุญาตทั้งหมด
        ปิด log_not_found;
        access_log off;
    }

    # กฎที่ยืมมาจาก `.htaccess`
    ตำแหน่ง / ระยะไกล {
        ส่งคืน 301 /remote.php$request_uri;
    }

    ที่ตั้ง / {
        try_files $uri $uri/ /index.php$request_uri;
    }
#}
}

ไฟล์กำหนดค่า Nginx SSL รวมอยู่ใน ไฟล์กำหนดค่าโฮสต์เสมือน nginx:

# cat /etc/nginx/conf.d-enabled/ssl-security.conf
  # เปิดใช้งานการเริ่มต้นเซสชันใหม่เพื่อปรับปรุงประสิทธิภาพ https
  # vincent.bernat.im/th/blog/2011-ssl-session-reuse-rfc5077.html
  ssl_session_cache ที่ใช้ร่วมกัน: SSL:50m;
  ssl_session_timeout 1d;
  ปิด ssl_session_tickets;

  # พารามิเตอร์ Diffie-Hellman สำหรับ DHE ciphersuites แนะนำ 2048 บิต
  #ssl_dhparam /etc/ssl/certs/dhparam.pem;
  #openssl dhparam -dsaparam -ออก /etc/ssl/private/dhparam.pem 4096
  ssl_dhparam /etc/ssl/certs/dhparam4096.pem;

  # เปิดใช้งานการป้องกันฝั่งเซิร์ฟเวอร์จากการโจมตีของ BEAST
  #blog.ivanristic.com/2013/09/is-beast-still-a-threat.html
  เปิด ssl_prefer_server_ciphers;

  # ปิดใช้งาน SSLv3 (เปิดใช้งานโดยค่าเริ่มต้นตั้งแต่ nginx 0.8.19) เนื่องจากมีความปลอดภัยน้อยกว่า TLS en.wikipedia.org/wiki/Secure_Sockets_Layer#SSL_3.0
  # โปรโตคอลที่ปิดใช้งาน: TLSv1 TLSv1.1
  ssl_protocols SSLv3 TLSv1.2 TLSv1.3;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  # ยันต์ที่เลือกเพื่อส่งต่อความลับและความเข้ากันได้
  # blog.ivanristic.com/2013/08/configuring-apache-nginx-and-openssl-for-forward-secrecy.html
  ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE- RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128- SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES- CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';

  # เปิดใช้งานการเย็บเล่ม ocsp (กลไกที่ไซต์สามารถส่งข้อมูลการเพิกถอนใบรับรองไปยังผู้เยี่ยมชมในลักษณะที่รักษาความเป็นส่วนตัวและสามารถปรับขนาดได้)
  #blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox/
  ตัวแก้ไข 8.8.8.8 8.8.4.4;
  เปิด ssl_stapling;
  เปิด ssl_stapling_verify;
# ssl_trusted_certificate /etc/nginx/ssl/star_forgott_com.crt;

  # config เพื่อเปิดใช้งาน HSTS (HTTP Strict Transport Security) developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
  # เพื่อหลีกเลี่ยงการลอก ssl en.wikipedia.org/wiki/SSL_stripping#SSL_stripping
  # ยัง hstspreload.org/
  add_header การขนส่งที่เข้มงวด - ความปลอดภัย "อายุสูงสุด = 31536000; includeSubdomains; โหลดล่วงหน้า";

# cat /etc/nginx/fastcgi
fastcgi.conf fastcgi_params fastcgi_params.dpkg-dist
root@we:~# cat /etc/nginx/fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP เท่านั้น จำเป็นหากสร้าง PHP ด้วย --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

### ตั้งค่าตัวแปร GEOIP ###
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;

fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;

ขอบคุณมากในขั้นสูง

หวังว่าใครบางคนสามารถช่วยได้ :)

Score:0
ธง cn

การคอมไพล์ nginx โดยไม่มีโมดูล ngx_http_dav_ext แก้ไขปัญหาได้ นอกจากนี้การคอมไพล์ nginx ด้วยโมดูลเป็นไดนามิกก็ใช้งานได้เช่นกัน

โพสต์คำตอบ

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