EDITAȚI | ×
Nextcloud își construiește propria implementare Webdav, Sabredav.
Ar putea fi următoarele module nginx să interfereze? --with-http_dav_module --add-module=/var/tmp/nginx-dav-ext-module
Știe cineva cum ar trebui să le compilez dinamic? Deci, pot să încarc/descărc pe timpul de execuție per configurație de gazdă virtuală?
Mersi :)
EDITARE SFÂRȘIT
Alerg Server Ubuntu 20.04
pe un server personal unde am implementat o instalare manuală a Nextcloud
care funcționează corect cu excepția webdav
.
Toată treaba merge sub nginx 1.19.3
, php-8.0
și FPM
.
Încercarea de a monta directorul privat nextcloud prin davfs:
# mount -t davfs https:
Vă rugăm să introduceți numele de utilizator pentru a vă autentifica la server
https:
Nume utilizator: myuser
Vă rugăm să introduceți parola pentru a autentifica utilizatorul myuser cu serverul
https:
Parola:
/sbin/mount.davfs: Montarea a eșuat.
Nu s-a putut autentifica pe server: a fost respinsă Provocarea de bază
Jurnalele Nextcloud legate de cele precedente montură
comanda:
{"reqId":"gf8ZgEQVDV7AoHp667YG","level":2,"time":"2022-04-05T17:50:58+00:00","remoteAddr":"x.y.z.w","user":"-- ","app":"core","method":"OPȚIUNI","url":"/remote.php/dav/files/myuser/","message":"Conectarea a eșuat: 'myuser' (IP la distanță : 'x.y.z.w')","userAgent":"davfs2/1.5.5 neon/0.30.2","version":"23.0.3.2"}
Jurnalele Nginx legate de cele precedente montură
comanda:
x.y.z.w drive.example.com - [05/Apr/2022:13:53:31 -0400] „OPȚIUNI /remote.php/dav/files/myuser/ HTTP/1.1” 401 569 „-” „davfs2/1.5.5 neon/0.30.2" "-" "-"
x.y.z.w drive.example.com utilizatorul meu [05/Apr/2022:13:53:57 -0400] „OPȚIUNI /remote.php/dav/files/myuser/ HTTP/1.1” 401 427 „-” „davfs2/1.5.5 neon/0.30.2" "-" "PAROLA CRYPTED_PASSWORD de bază"
Câteva informații irelevante Ubuntu:
Nu sunt disponibile module LSB.
ID distribuitor: Ubuntu
Descriere: Ubuntu 20.04.4 LTS
Lansare: 20.04
Nume de cod: focal
Linux host.example.com 5.4.0-107-generic
Nginx a fost descărcat și compilat din formularul sursă depozit oficial nginx și prin apt:
# apt source nginx
# cd nginx-0.8.54
# editați debian/rules
# dpkg-buildpackage -b nginx
Nginx
versiune, caracteristici și parametri de compilare:
Versiunea nginx: nginx/1.19.3
construit de gcc 9.3.0 (Ubuntu 9.3.0-10ubuntu2)
construit cu OpenSSL 1.1.1g 21 aprilie 2020
Suportul TLS SNI activat
configurați argumente: --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 - -cu-http_flv_module --cu-http_gunzip_module --cu-http_gzip_static_module --cu-http_mp4_module --cu-http_random_index_module --cu-http_realip_module --cu-http_secure_link_module --cu-http_slice_link_module --cu-http_slice_module -http_slice_module -http_slice_module-http_module- -cu-http_sub_modul --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,-Bsymbolic-functions -Wl,-z,relro -Wl, -z,now -Wl,--as-needed -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-stable/35. --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/
PHP
info:
# php8.0 --versiune
PHP 8.0.15 (cli) (construit: 29 ianuarie 2022 07:24:52) ( NTS )
Drepturi de autor (c) Grupul PHP
Zend Engine v4.0.15, Copyright (c) Zend Technologies
cu Zend OPcache v8.0.15, Copyright (c), de Zend Technologies
# php8.0 -m
[Module PHP]
apcu
bcmath
bz2
calendar
Miez
ctip
răsuci
Data
dom
exif
FFI
informații despre fișier
filtru
ftp
gd
gettext
gmp
hash
iconv
igbinar
imagick
intl
json
libxml
mbstring
memcache
mongodb
mysqli
mysqlnd
openssl
pcntl
pcre
DOP
pdo_mysql
pdo_sqlite
Phar
posix
pspell
Citeste linia
redis
Reflecţie
sesiune
shmop
SimpleXML
săpun
prize
sodiu
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
fermoar
zlib
[Module Zend]
Zend OPcache
Nextcloud
info:
# sudo -u nginx php8.0 /home/nginx/Tools/nextcloud/occ status
- instalat: adevărat
- versiunea: 23.0.3.2
- șirul de versiuni: 23.0.3
- ediție:
- întreţinere: fals
- needDbUpgrade: false
- numele produsului: Nextcloud
- extinsSupport: fals
Fișierul gazdă virtuală Nginx:
cat /etc/nginx/sites-enabled/nextcloud.conf
php-handler în amonte {
server unix:/var/run/php/php8.0-fpm.sock;
}
harta $arg_v $asset_immutable {
"" "";
implicit „imuabil”;
}
Server {
asculta 80;
asculta [::]:80;
nume_server 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 principal;
error_log /var/log/nginx/nextcloud.error.log crit;
returnează 301 https://$host$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
nume_server 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;
includ /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 principal;
error_log /var/log/nginx/nextcloud_ssl.error.log crit;
includ /etc/nginx/snippets/letsencrypt-cert-renewal-dir.conf;
dacă ($http_host != "drive.example.com" ) {
rescrie ^ https://drive.example.com$request_uri permanent;
pauză;
}
locație = /robots.txt {
permite tuturor;
log_not_found off;
access_log off;
}
locație ^~ /.cunoscut {
locație = /.well-cunoscut/carddav { return 301 /remote.php/dav/; }
locație = /.well-cunoscut/caldav { return 301 /remote.php/dav/; }
locație /.well-known/acme-challenge { try_files $uri $uri/ =404; }
locație /.well-cunoscut/pki-validation { try_files $uri $uri/ =404; }
return 301 /index.php$request_uri;
}
client_max_body_size 50G;
client_body_timeout 300s;
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-Buffering nr;
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 on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expirat no-cache no-store private no_last_modified no_etag auth;
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 application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
viteza paginii oprită;
add_header Referrer-Policy „no-referrer” întotdeauna;
add_header X-Content-Type-Options „nosniff” întotdeauna;
add_header X-Download-Options „noopen” întotdeauna;
add_header X-Frame-Options „SAMEORIGIN” întotdeauna;
add_header X-Permitted-Cross-Domain-Policies „niciunul” întotdeauna;
add_header X-Robots-Tag „none” întotdeauna;
add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
fastcgi_hide_header X-Powered-By;
root /home/nginx/Tools/nextcloud/;
index index.php index.html /index.php$request_uri;
locație = / {
if ( $http_user_agent ~ ^DavClnt ) {
returnează 302 /remote.php/webdav/$is_args$args;
}
}
locație ~ ^/(?:build|tests|config|lib|3rdparty|şabloane|date)(?:$|/) { return 404; }
locație ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
locație ~ \.php(?:$|/) {
rescrie ^/(?!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)(/.*)$;
setați $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS activat;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors activat;
fastcgi_request_buffering dezactivat;
fastcgi_max_temp_file_size 0;
}
locație ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|hartă)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
access_log off;
locație ~ \.wasm$ {
aplicație de tip_implicit/wasm;
}
}
locație ~ \.woff2?$ {
try_files $uri /index.php$request_uri;
expiră 7d;
access_log off;
}
locație = /data/htaccesstest.txt {
permite tuturor;
log_not_found off;
access_log off;
}
locație /la distanță {
return 301 /remote.php$request_uri;
}
Locație / {
try_files $uri $uri/ /index.php$request_uri;
}
}
Fișierul de configurare Nginx SSL inclus în fișierul de configurare a gazdei virtuale nginx
:
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
ssl_prefer_server_ciphers activat;
ssl_protocols SSLv3 TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256-SHA256-ECDSA-CMHE256-ECDSA-CEDHE256-ECDSA-CED4-ECDHE RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHAES-SHA256:ECDHE-ECDSA-SHA256: SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA256:-SHA 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';
resolver 8.8.8.8 8.8.4.4;
ssl_capsare activată;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
fastcgi.conf fastcgi_params fastcgi_params.dpkg-dist
root@we:~
fastcgi_param QUERY_STRING $șir_interogare;
fastcgi_param REQUEST_METHOD $cerere_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 dacă_nu_vide;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $adresă_la distanță;
fastcgi_param REMOTE_PORT $port_la distanță;
fastcgi_param SERVER_ADDR $adresa_server;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
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;
Multumesc mult anticipat.
Sper sa te ajute cineva :)