Welcome! Log In Create A New Profile

Advanced

Re: HACK NGINX+DAV

December 04, 2016 03:26AM
> При всех сторонних модулях вы даже не показали конфиг
Туплю может.... Не видел необходимости при данной ошибке показывать конфиг.
По моей логике считал - что бы я там не написал, это не должно было позволить воркерам и модулям
выполнять команды webdav от рута. Возможно я не прав. Сорри! Вот конфиги.

-------------------------------------------
nginx.conf

#######################################################################
#
# This is the main Nginx configuration file.
#
# More information about the configuration options is available on
# * the English wiki - http://wiki.nginx.org/Main
# * the Russian documentation - http://sysoev.ru/nginx/
#
#######################################################################

#----------------------------------------------------------------------
# Main Module - directives that cover basic functionality
#
# http://wiki.nginx.org/NginxHttpMainModule
#
#----------------------------------------------------------------------

user nginx;
worker_processes 2;
worker_rlimit_nofile 16384;

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

#----------------------------------------------------------------------
# Events Module
#
# http://wiki.nginx.org/NginxHttpEventsModule
#
#----------------------------------------------------------------------

events {
use epoll;
worker_connections 1024;
multi_accept on;
}



#----------------------------------------------------------------------
# HTTP Core Module
#
# http://wiki.nginx.org/NginxHttpCoreModule
#
#----------------------------------------------------------------------

http {

client_body_temp_path /tmp/nginx-client-body;
fastcgi_temp_path /tmp/nginx-fastcgi;
uwsgi_temp_path /tmp/nginx-uwsgi;
scgi_temp_path /tmp/nginx-scgi;

proxy_cache_path /opt/nginx/cache levels=1:2 keys_zone=cache:30m max_size=10G;
proxy_temp_path /opt/nginx/proxy 1 2;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;


lua_package_cpath '/usr/lib64/?.so;/usr/lib64/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so';
lua_package_path '/usr/share/lua/5.1/?.lua;/usr/local/lib/lua/?.lua;/usr/share/lua/resty/?.lua;/usr/local/lib/lua/resty/?.lua;/usr/local/lib/lua/resty/core/?.lua;';
lua_shared_dict sha1 10M;

lua_shared_dict a 10M;

include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

log_format inweb '$msec|$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 main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 1000;

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.0;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

gzip_static on;
gzip_disable FireFox/([0-2]\.|3\.0);
gzip_disable Chrome/2;
gzip_disable Safari;
gzip_disable MSIE[1-6].(?!.*SV1);

limit_req_zone $binary_remote_addr zone=2client:10m rate=5r/s;
limit_req_zone $binary_remote_addr zone=system:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=update:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=social:10m rate=5r/s;
limit_req_zone $binary_remote_addr zone=com:10m rate=50r/s;
limit_req_zone $binary_remote_addr zone=itcodcom:1m rate=10r/s;
limit_req_zone $binary_remote_addr zone=itcod:100m rate=100r/s;

map_hash_bucket_size 128;
map $sent_http_content_type $expires {
default off;
application/pdf 42d;
~image/ max;
}
expires $expires;

#
# The default server
#
server {
listen 80;
server_name _;
server_name_in_redirect off;
location ~* \.(css|js|ico|atrib|vas|ini) {
gzip_static on;
gzip_disable FireFox/([0-2]\.|3\.0);
gzip_disable Chrome/2;
gzip_disable Safari;
}

error_page 415 = /empty;
location = /empty {
empty_gif; # Respond with empty image
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}


# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

server_names_hash_bucket_size 64;

ssl_certificate ssl/cert.pem;
ssl_certificate_key ssl/cert.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

include win-utf;
include koi-utf;
# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/virt.d/*.conf;
}

---------------------------------------------------------------
virt.conf

server {
listen 80;
listen 443 ssl;
server_name "~^ihome\d+\.itcod\.com$ ~^cdn\d+\.itcod\.com$"
www.itcod.com
itcod.com
www.itcod.ru
itcod.ru
www.itcod.su
itcod.su
www.itcod.net
itcod.net
~^cdn\d+\.itcod\.net$
ihome.itcod.com
icm.itcod.com
localhost
;
expires epoch;
keepalive_timeout 70;
ssl_certificate ssl/itcod.com/uni.crt;
ssl_certificate_key ssl/itcod.com/ssl.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers AES128-SHA:AES256-SHA:DES-CBC3-SHA:;
ssl_prefer_server_ciphers on;
ssl_stapling on;
add_header Strict-transport-Security 'max-age=604800';

ssl_buffer_size 4k;

default_type application/octet-stream;
access_log /var/log/nginx/ihome.itcod.com-access.log main;
resolver 127.0.0.1;
charset utf-8;

gzip_static on;
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/x-javascript text/javascript application/javascript application/json text/xml application/xml appliction/xml+rss;

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Allow-Header *;
add_header Access-Control-Allow-Credentials true;

set $dir /opt/home;
set $testdir $dir$uri;
set $uri_type none;
if (-d $testdir) { # такая папка есть
set $uri_type dir;
rewrite ^(.*)$ $1/;
rewrite ^(.*)/+$ $1/;
}
if (-f $testdir) { # такой файл есть
set $uri_type file;
}
if ($request_method = "MKCOL") {
rewrite ^(.*)$ $1/;
rewrite ^(.*)/+$ $1/;
set $uri_type dir; #клиент webdav создает папку
}
if ($request_method = "PUT") {
set $uri_type file; #передаем только файлы
}
if ($request_method = "POST") {
set $uri_type file; #постим только файлы
}
set $user_open .htopen; #all:[com] file:[com] dir/:[com] (com = private/open/block/hide)
set $user_passwd .htpasswd; #user:password[crypt(3)/md5/sha1]
set $user_permit .htpermit; #user:GET,PUT,....OPTIONS
set $user_permit_default GET,HEAD,PROPFIND,OPTIONS; # Allow
set $user_itcod guest;
set $home_itcod /;
set $itcod_automount off; #off/on
set $itcod_passwd <PASSWORD>;
set $ID_user <USER>;

merge_slashes on;
set $answer_block 0;
set $a401 no;

location / {
allow 127.0.0.0/8;
limit_req zone=com burst=50 nodelay;
limit_rate 512k;

set $uri_del /%.resize/%d+x%d+/;
set $auth_dav private; #none/private
access_by_lua_file /etc/nginx/lua/auth-dav.lua;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
create_full_put_path on;
dav_access user:rw group:rw;
client_body_temp_path /opt/tmp/;
client_max_body_size 0;
autoindex on;
root $dir;
header_filter_by_lua_file /etc/nginx/lua/itcod-exchange.lua;
set $md5index on; #on/off nil=off # вкл/выкл обработчик
set $md5index_hash md5; #none/md5/md4/sha1/sha/ripemd160 nil=none # тип выводых хэшей
set $md5index_size 2000; #kb nil=unlimit # не считать для файлов более N kb
set $md5index_path on; #on/off nil=off # заменять относительный путь ссылок на полный URI
set $md5index_nonblank on; #on/off nil=off # заменить множественные пробелы одним
set $md5index_type on; #on/off nil=off # добавит в строки описание типа file/directory/etc...
set $md5index_ico https://itcod.com/ui/icons/16ext/; # путь к библиотека иконок
set $md5index_icopref icon-; # префикс имени файла иконки
#set $md5index_icosuf -icon; # суфикс имени файла иконки
set $md5index_icoext .gif; # расширение файла иконки
set $md5index_win VIEW; # target window for !winext! files
set $md5index_winext all; # file extension for target windows
set $md5index_htindex .htindex; # файл главного рекурсивного шаблона верхнего уровня
set $md5index_htindex_add .htindex.add; # файл корректировочного рекурсивного шаблона
body_filter_by_lua_file /etc/nginx/lua/md5index.lua; # addon обработчик

}

location ~/\.uht {
deny all;
}

location /i/search/ {
content_by_lua_file /etc/nginx/lua/itcod-search.lua;
}

# location /i/mnt/ {
# content_by_lua_file /etc/nginx/lua/itcod-mnt.lua;
# }


location /i/user/ {
set $user_passwd <PASSWORD>;
set $user_captcha_test recaptcha;
set $user_captcha_test_secret <SECRET>;
set $user_captcha_add recaptcha;
set $user_captcha_add_secret <SECRET>;
set $user_link /opt/home; # link generation
set $user_home /opt/fs/local; #general create home userbox
content_by_lua_file /etc/nginx/lua/itcod-user.lua;
}

location /i/send/ {
gzip_static off;
gzip off;
content_by_lua_file /etc/nginx/lua/itcod-send.lua;
}

location /i/sendNote/ {
set $sendNote_captcha_new recaptcha;
set $sendNote_captcha_new_secret <SECRET>;
set $sendNote_captcha_add recaptcha;
set $sendNote_captcha_add_secret <SECRET>;
set $sendNote_domain itcod.net;
set $sendNote_email no;
set $send_server http://localhost/;
content_by_lua_file /etc/nginx/lua/itcod-sendNote.lua;
}

location /i/sendText/ {
set $sendText_captcha_new recaptcha;
set $sendText_captcha_new_secret <SECRET>;
set $sendText_captcha_add recaptcha;
set $sendText_captcha_add_secret <SECRET>;
set $send_server http://localhost/;
content_by_lua_file /etc/nginx/lua/itcod-sendText.lua;
}

############
location /.resize/ {
alias /opt/home/;
expires 3d;
add_header Cache-Control public;
set $uri_del ^/%.resize/%d+x%d+/;
access_by_lua_file /etc/nginx/lua/auth-dav.lua;
set $width 100;
set $height 100;
set $demins "100x100";

if ($uri ~* "^/.resize/(\d+)x(\d+)/(.*)" ) {
set $width $1; # ширина
set $height $2; # высота
set $image_path $3; #реальный url к картинке
set $demins "$1x$2"; #маска(подпапка) размера
}
if ($image_path ~* "(.*)/(.*)\.(.*)$") {
set $image_dir $1; #путь
set $image_name $2; #имя файла
set $image_ext $3; #расширение
}
set_unescape_uri $image_dir;
set_unescape_uri $image_dir;
set_unescape_uri $image_name;
set_unescape_uri $image_name;

set $image_req /resize/$image_dir/$demins/$image_name.$image_ext;
set $image_request /opt/home/resize/$image_dir/$demins/$image_name.$image_ext;

set $image_uri image_resize/$image_path?width=$width&height=$height;

if (!-f $image_request) {
access_log /var/log/nginx/itcod-noimg.log main;
proxy_pass http://localhost/$image_uri;
}

proxy_store $image_request;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /tmp/images;
proxy_set_header Host $host;
# отправить запрос к кэшу
proxy_pass http://localhost/$image_req;

}

location /image_resize {
access_log /var/log/nginx/itcod-resize.log main;

alias /opt/home;
image_filter resize $arg_width $arg_height;
image_filter_buffer 20M;
image_filter_jpeg_quality 75;
image_filter_sharpen 35;
image_filter_interlace on;
image_filter_transparency on;
error_page 415 = /.empty;
}

# Error handler
location = /.empty {
empty_gif; # Respond with empty image
}

}

---------------
Источник: https://itcod.com/test/2016.12.04.demo.nginxConfig/
Subject Author Posted

HACK NGINX+DAV

itcod December 02, 2016 12:07PM

Re: HACK NGINX+DAV

itcod December 02, 2016 12:23PM

Re: HACK NGINX+DAV

Maxim Dounin December 02, 2016 01:12PM

Re: HACK NGINX+DAV

itcod December 02, 2016 01:48PM

Re: HACK NGINX+DAV

Dmitry Ivanov December 02, 2016 03:34PM

Re: HACK NGINX+DAV

itcod December 03, 2016 05:03AM

Re: HACK NGINX+DAV

Vitaliy Okulov December 03, 2016 05:16AM

Re: HACK NGINX+DAV

itcod December 03, 2016 05:35AM

Re: HACK NGINX+DAV

Denis Kot December 03, 2016 07:54AM

Re: HACK NGINX+DAV

itcod December 03, 2016 09:41AM

Re: HACK NGINX+DAV

Vitaliy Okulov December 03, 2016 09:08AM

Re: HACK NGINX+DAV

itcod December 03, 2016 10:20AM

Re: HACK NGINX+DAV

Vitaliy Okulov December 03, 2016 02:22PM

[offtop] was: HACK NGINX+DAV

Anton Yuzhaninov December 03, 2016 12:44PM

Re: HACK NGINX+DAV

Konstantin Baryshnikov December 03, 2016 06:38PM

Re: HACK NGINX+DAV

itcod December 04, 2016 02:24AM

Re: HACK NGINX+DAV

Илья Шипицин December 04, 2016 07:44AM

Re: HACK NGINX+DAV

itcod December 04, 2016 02:08AM

Re: HACK NGINX+DAV

Maksim Kulik December 04, 2016 02:22AM

Re: HACK NGINX+DAV

itcod December 04, 2016 02:50AM

Re: HACK NGINX+DAV

itcod December 04, 2016 03:26AM

Re: HACK NGINX+DAV

Gena Makhomed December 04, 2016 04:04AM

Re: HACK NGINX+DAV

itcod December 04, 2016 06:45AM

Re: HACK NGINX+DAV

Vadim A. Misbakh-Soloviov December 04, 2016 07:28AM

Re: HACK NGINX+DAV

itcod December 04, 2016 08:22AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 227
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready