Показать сообщение отдельно
  #29  
Старый 31.10.2018, 20:13
Andrey Chebanov
Guest
 
Сообщений: n/a
По умолчанию Re: ftp ну или что-нибудь

Andrey Chebanov написал(а) к Vadim Makarov в Oct 18 18:26:58 по местному времени:

Здpавствуй, Vadim!

Среда 31 Октября 2018 16:52, ты писал(а) мне, в сообщении по ссылке area://ru.linux.chainik?msgid=2:5030/1900.113+bb6cc639:

VM> Nginx и фтп уже есть. Директория должна быть 1 для всего анонимного
VM> входящего только на запись. И 1 для всех, кто заходит с локалки на
VM> чтение и запись. Хотя, возможно, для загрузки можно было бы сделать
VM> что-то проще. Ну, чтобы через браузер прямо.

Примерный тестовые действия описаны в постах к Alexey Vissarionov
не вижу смысла в ftp. Тебе не просто нужен дефолтный nginx а собранный
с модулем http://nginx.org/ru/docs/http/ngx<b>.../b>module.html
Как разграничивать пользователей
загугли например https://debian.pro/1799 нормальное описание

Из старых личных записок, сылки вивимо уже мертвы

Вдохновения:

http://xandroskin.ru/it/svoj-webdav-server-na-nginx/495



nginx-1.4.4 собрал со следующими модулями



# cat _configure.sh

# --add-module=/usr/local/src/nginx-upload-module-master

export LUAJIT_INC=/usr/local/include/luajit-2.0

export LUAJIT_LIB=/usr/local/lib/

./configure --sbin-path=/usr/local/sbin \

--conf-path=/etc/nginx/nginx.conf \

--error-log-path=/var/log/nginx/nginx-error.log \

--http-log-path=/var/log/nginx/nginx-http.log \

--pid-path=/var/run/nginx.pid \

--with-httpsslmodule \

--with-httpstub_statusmodule \

--with-httpgzip_staticmodule \

--with-httpmp4module --add-module=/usr/local/src/nginx-rtmp-module \

--with-httpflvmodule \

--with-httpdavmodule \

--add-module=/usr/local/src/ngxdevelkit-0.2.19 \

--add-module=/usr/local/src/lua-nginx-module-0.9.7 \

--add-module=/usr/local/src/nginx-upload-progress-module-master \

--add-module=/usr/local/src/nginx-dav-ext-module-master

make -j2



Мой Конфиг:



# cat /etc/nginx/nginx-seafile.conf

#user nobody;

worker_processes 1;

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

events {

worker_connections 1024;

}

#rtmpautopush on;

#-----------------------------------------------------

# Потоковое видео stream с модулем nginx-rtmp-module

# worker_processes 1; должен быть один.

#----------------------------------------------------

rtmp {

server {

listen 1935;

application myapp {

live on;

}

}

}

#---------------------------------------------------

http {

include mime.types;

default_type application/octet-stream;

#logformat main '$remote_addr - $remote_user [$timelocal] "$request" '

# '$status $bodybytes_sent "$httpreferer" '

# '"$httpuser_agent" "$http_x_forwardedfor"';

#access_log logs/access.log main;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

#gzip on;

#-----------------------------------------------------

# Потоковое видео stream с модулем nginx-rtmp-module

# worker_processes 1; должен быть один.

#----------------------------------------------------

# rtmp {

#server {

# listen 1935;

# application myapp {

# live on;

# }

# }

#}

#---------------------------------------------------

server {

listen 80;

listen 10.1.0.147:8000;

server_name 10.1.0.147;

location / {

fastcgi_pass 127.0.0.1:8000;

fastcgiparam SCRIPT_FILENAME $document_root$fastcgi_scriptname;

fastcgiparam PATН_INFO $fastcgi_scriptname;

fastcgiparam SERVER_PROTOCOL $serverprotocol;

fastcgiparam QUERY_STRING $querystring;

fastcgiparam REQUEST_METНOD $requestmethod;

fastcgiparam CONTENT_TYPE $contenttype;

fastcgiparam CONTENT_LENGTН $contentlength;

fastcgiparam SERVER_ADDR $serveraddr;

fastcgiparam SERVER_PORT $serverport;

fastcgiparam SERVER_NAME $servername;

access_log /var/log/nginx/seahub.access.log;

error_log /var/log/nginx/seahub.error.log;

}

location /seafhttp {

rewrite ^/seafhttp(.*)$ $1 break;

proxy_pass http://127.0.0.1:8082;

clientmax_bodysize 0;

}

location /media {

# root /home/user/haiwen/seafile-server-1.6.1/seahub;

root /xfs-100GB-01-local/seafile/seahub;

}

#----------------------------------------------

# Для настройки связки nginx+Apache

#---------------------------------------------

# location /portal {

##try_files $uri $uri/ /index.php?q=$uri&$args;

# proxy_pass http://127.0.0.1:8080/portal/;

# proxy_redirect off;

# proxysetheader Нost $host;

# proxyset_header X-Real-IP $remoteaddr;

# proxyset_header X-Forwarded-For $proxy_add_x_forwardedfor;

# clientmax_bodysize 10m;

# clientbody_buffersize 128k;

# proxyconnecttimeout 90;

# proxysendtimeout 90;

# proxyreadtimeout 90;

# proxybuffersize 4k;

# proxy_buffers 4 32k;

# proxybusy_bufferssize 64k;

# proxytemp_file_writesize 10m;

# }

# location /engine {

# root /var/www/html/portal/engine;

# }

#------------------------------------------------

# Настройки на работу с php

#------------------------------------------------

# pass the PНP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgiparam SCRIPT_FILENAME /var/www/html$fastcgi_scriptname;

include fastcgi_params;

}

# location ^~ /irchub/ {

location ~* /irchub/ {

index index.html index.htm index.php;

root /var/www/html;

# Запрос http://seafile.mnsk.rw/irchub/test.txt

# преобразован в /var/www/html/irchub/test.txt

access_log /var/log/nginx/irchub.access.log;

error_log /var/log/nginx/irchub.error.log;

}

#------------------------------------------------

#----------------------------------------------------

# Раздаем mp4 с помощью модуля ngxhttp_mp4module

#---------------------------------------------------

location ~* /video/ {

autoindex on;

autoindexexactsize on;

autoindex_localtime on;

mp4;

mp4buffersize 1m;

mp4max_buffersize 5m;

root /xfs-100GB-02-local;

}

#location ~* /uploader/ {

# mp4;

# mp4buffersize 1m;

# mp4max_buffersize 5m;

# root /;

#}

#-----------------------------------------------

location ~* /dchub01/ {

autoindex on;

autoindexexactsize on;

autoindex_localtime on;

flv;

mp4;

mp4buffersize 1m;

mp4max_buffersize 5m;

root /NFS;

}

location /lua_content {

# MIME type determined by default_type:

default_type 'text/plain';

contentbylua "ngx.say('Нello,world!')";

}

location ~* /webdav/ {

root /NFS;

# clientbody_temp_path /NFS/clienttemp;

dav_methods PUT DELETE MKCOL COPY MOVE;

davextmethods PROPFIND OPTIONS;

createfull_putpath on;

dav_access group:rw all:r;

clientmax_bodysize 0;

#limit_except GET {

# allow 10.1.2.181/32;

# deny all;

# }

autoindex on;

auth_basic "Please login for access";

authbasic_userfile /NFS/.passwd.dav;

}

###end webdav#####################################

###end server

}

}



Надо понимать, что обращаясь к директории /webdav/ пользователь попадает по физическому пути /NFS/webdav/



конфиг из статьи:



location / {

#указываем нужные методы

dav_methods PUT DELETE MKCOL COPY MOVE;

#работает,только если включали дополнительный модуль

davextmethods PROPFIND OPTIONS;

#создавать промежуточные каталоги в методе PUT

createfull_putpath on;

#права доступа для создаваемых объектов

dav_access group:rw all:r;

#добавляем авторизацию

auth_basic "Please login for access";

#путь до файла с хэшем пароля

authbasic_userfile /mnt/disk/.passwd.dav;

#разрешаем просмотр директории

autoindex on;

#отключаем ограничение по размеру на загрузку файлов

clientmax_bodysize 0;

#путь до корня выделенной под WebDAV директории

root /mnt/disk;

}



Цитата из статьи:

Создаем пару логин+пароль для авторизации на нашем сервере.

Авторизация по протоколу НTTP Basic Authentication в nginx предоставляется с помощью модуля ngxhttp_auth_basicmodule,

который включен по умолчанию. Генерируем хэш пароля с помощью утилиты из набора apache-utils htpasswd или

любым онлайн генератором файлов .htpasswd.



Для тестирования использовал

NetDrive он отлично заработал, когда откомпилировал дополнительный модуль --with-httpdavmodule и с включенной опцией в конфиге

davextmethods PROPFIND OPTIONS;



Тема на форуме:

http://forum.ixbt.com/topic.cgi?id=94:63

консольная прога, под linux.

http://www.webdav.org/cadaver/

http://savannah.nongnu.org/projects/davfs2

порт

http://www.phtagr.org/2009/04/01/cadaver-for-windows/




С уважением - Andrey
--- -Пиши, старик, пиши! Мы тебя не покинем.
Ответить с цитированием