Максим, а почему такое значение по-умолчанию у директивы ssl_protocols?
В частности, протокол TLSv1.3 выключен, но вместо него включены
протоколы TLSv1 и TLSv1.1 - сейчас ведь наоборот рекомендуют делать.
Даже RFC вышел соответствующий еще в мае 2015 года,
https://tools.ietf.org/html/rfc7525#section-3.1.1
И такие же настройки рекомендуются https://ssl-config.mozilla.org/
Почему бы не сделать ssl_protocols TLSv1.2 TLSv1.3; значением
по-умолчанию в nginx?
--
Best regards,
Gena
Добрый день уважаемые!
Выставляю на Ваш суд свою поделку. Просьба сильно не пинать:) Конечно ещё
сыровата... но я уже кушаю:)))
Просто не нашёл аналогичного... может плохо искал.... вот и пришлось
покодить немножко. Надеюсь полезная будет:)
Сервис "ITCOD-DISK" Облачное хранилище.
-- Copyright (c) 2015 by Yura Vdovytchenko (max(a)itcod.com)
-- Copyright (c)itcod 2010-2015
-- version: 15.06.27
-- license: MIT
Назначение: Сетевой диск(хранилище) файлов по технологии WEBDAV.
С публикацией по http/https и индексный файл с контрольными суммами
md5/etc.
Предназначен для хранения и публикации NoSQL информационных массивов.
Принцип: Сервис-ориентированная архитектура построения. Nginx обеспечивает
стандартный протокол WEBDAV over HTTP/HTTPS. Lua-модули itcod обеспечивают
расширение функций и сетевые сервисы управления ITCOD-DISK'ом.
ITCOD UI WWII обеспечивает WEB-интерфейс между пользователем и сервисами.
ОТЛИЧИЕ ОТ АНАЛОГОВ
NoLAMP NoLEMP NoSQL SOA
На сервере только Nginx + Lua и никаких PHP SQL и т.д.
БАЗОВЫЕ КОМПОНЕНТЫ ITCOD-DISK
LINUX - операционная система
NGINX - http daemod (with WebDAV and Lua)
LUA - язык программирования
Resty - библиотека Lua
add - дополнительные библиотеки (см. require в *.lua)
ITCOD Lua Modules & Services - модули SOA ITCOD для операций с хранилищем
ITCOD WWII - web-интерфейс для ITCOD-DISK (в разработке)
БАЗОВЫЕ КОМПОНЕНТЫ ITCOD Lua Modules & Services
auth-dav.lua - авторизатор для HTTP/HTTPS/WEBDAV
md5index.lua - расширитель функций autoindex NGINX
itcod-user.lua - создание пользовательских юзербоксов на диске WEBDAV
itcod-exchange.lua - сервис транспорта файлов между пользователями и
дисками
itcod-search.lua - REST-сервис авторизованного поиска информации в закрытых
пользовательских массивах
libs/ - библиотека иконок типов файлов для md5index
Подробнее о компанентах см. https://ihome.itcod.com/max/project/
КОНФИГУРАЦИЯ NGINX
nginx version: nginx/1.7.11
built by gcc 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC)
TLS SNI support enabled
configure arguments:
--prefix=/usr/share/nginx
--sbin-path=/usr/sbin/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--http-client-body-temp-path=/var/lib/nginx/tmp/client_body
--http-proxy-temp-path=/var/lib/nginx/tmp/proxy
--http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi
--http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi
--http-scgi-temp-path=/var/lib/nginx/tmp/scgi
--pid-path=/run/nginx.pid
--lock-path=/run/lock/subsys/nginx
--user=nginx
--group=nginx
--with-pcre-jit
--with-debug
--with-file-aio
--with-ipv6
--with-http_ssl_module
--with-http_realip_module
--with-http_addition_module
--with-http_xslt_module
--with-http_image_filter_module
--with-http_geoip_module
--with-http_sub_module
--with-http_dav_module
--add-module=/usr/src/nginx-dav-ext-module-master
--with-http_flv_module
--add-module=/usr/src/f4f-hds-master
--with-http_mp4_module
--with-http_gzip_static_module
--with-http_random_index_module
--with-http_secure_link_module
--with-http_degradation_module
--with-http_stub_status_module
--with-http_perl_module --with-mail
--with-mail_ssl_module
--with-http_auth_request_module
--add-module=/usr/src/echo-nginx-module-master
--add-module=/usr/src/nginx_md5_filter-master
--add-module=/usr/src/ngx_devel_kit-master
--add-module=/usr/src/lua-nginx-module-master
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic'
--with-ld-opt=' -Wl,-E,-rpath,/usr/local/lib'
КОНФИГУРАЦИЯ ВИРТУАЛЬНОГО WEB-СЕРВЕРА (WEBDAV)
Приведена конфигурация nginx работающего на виртуальной машине
за проксирующим первичным nginx. Для работы на первичном вам необходимо
изменить listen на 80 и 443. А так же не забудьте поправить основные
настройки на ваши собственные (имена сервера и т.д.)
Файл ihome.conf
server {
listen 7070;
server_name "~^ihome\d+\.itcod\.com$"
ihome.virtual.ko
ihome.itcod.com
;
server_name_in_redirect off;
expires epoch;
ssl off;
#default_type application/octet-stream;
set_real_ip_from 10.255.255.7;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
access_log /var/log/nginx/ihome.itcod.com-access.log main;
resolver 10.255.255.1 [::1]:5353;
charset utf-8;
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 $sadm_passwd .uhtpsw;
set $user_passwd .htpasswd; #user:password[crypt(3)/md5/sha1]
set $user_permit .htpermit; #user:GET,PUT,....OPTIONS
set $user_permit_default GET,PROPFIND,OPTIONS; # Allow
merge_slashes on;
location / {
limit_req zone=itcod burst=200 nodelay;
limit_rate 2048k;
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/itcod-dav.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 50000; #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 http://ihome.itcod.com/max/projects/libs/icons16ext/; #
путь к библиотека иконок
set $md5index_icopref icon-; # префикс имени файла иконки
#set $md5index_icosuf -icon; # суфикс имени файла иконки
set $md5index_icoext .gif; # расширение файла иконки
set $md5index_win _blank; # target window for !winext! files
set $md5index_winext htm.html.txt; # file extension for target windows
body_filter_by_lua_file /etc/nginx/lua/md5index.lua; # addon
обработчик
}
location ~/\.uht {
deny all;
}
location /search/ {
content_by_lua_file /etc/nginx/lua/itcod-search.lua;
}
location /user/ {
content_by_lua_file /etc/nginx/lua/itcod-user.lua;
}
}
ПРИМЕЧАНИЕ
Для программистов адекватных perl, проблем определить и загрузить
недостающие
модули require не составит труда. В случае если у вас, что то не получается
пишите тут или на max(a)itcod.com обязательно помогу.
ТЕКУЩИЕ РАБОТЫ
Формирование WebUI ITCOD-DISK
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,259941,259941#msg-259941
Здравствуйте!
У меня наверное быстро решимая
проблема, но я просто решение вопроса
не вижу.
Работает у меня nginx 1.0.8
--------
nginx: nginx version: nginx/1.0.8
nginx: configure arguments: --with-http_gzip_static_module
--with-openssl=/usr/include --with-http_stub_status_module
--http-proxy-temp-path=/dev/shm/nginx/proxy_temp
--http-fastcgi-temp-path=/dev/shm/nginx/fastcgi_temp
--http-uwsgi-temp-path=/dev/shm/nginx/uwsgi_temp
--http-scgi-temp-path=/dev/shm/nginx/scgi_temp
--http-client-body-temp-path=/dev/shm/nginx/client_body_temp
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log
--conf-path=/etc/nginx/nginx.conf --user=www-data --group=www-data
--------
и в соответствующем файле у меня стоит
в секции Server:
--------
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
------
всё такие я получаю ошибку 404, когда я на
сервере наберу "GET domain/status"
В чем может состоить проблема?
Спасибо вам большое.
Андрей
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,216178,216178#msg-216178
Всем привет, поднял на nginx rtmp-сервер, задача которого брать с OBS
видео-поток и рестримить его сразу на несколько сервисов (ютуб, твич и
т.д.)
-------
worker_processes 1;
error_log logs/error.log info;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
push rtmp://youtube/live38uphbx7;
push rtmp://twich/live/l2xgvdwi;
--------
Всё отлично работает, но одновременно на этом же ПК запущено два OBS с
разным контентом, который нужно рестримить на разные сервисы.
Вопрос, можно ли поднять на одном ПК два nginx сервера, для этой задачи. Или
на одном nginx запустить два rtmp-сервера. Или может есть мысли как
по-другому сделать такой рестрим.
Буду благодарен за любые идеи. Спасибо ;)
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,288508,288508#msg-288508
есть конфигурация nginx
server {
listen 80;
server_name client.test.domain;
charset utf-8;
root /var/www/_test.domain/client/;
index index.php index.html;
client_max_body_size 0;
location / {
#root /var/www/_test.domain/client/;
}
location /html {
#root /var/www/_test.domain/;
alias /var/www/_test.domain/html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-www.sock;
#fastcgi_pass 127.0.0.1.:9000;
fastcgi_index index.php;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
include fastcgi_params;
fastcgi_param HTTPS on;
fastcgi_param SCRIPT_FILENAME
/var/www/_test.domain/client$fastcgi_script_name;
#fastcgi_param PHP_ADMIN_VALUE
"open_basedir=/var/www:/tmp:/var/lib/sessions:/var/www/tmp:/var/www/log";
#include /etc/nginx/fastcgi_params;
}
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
# caching of files
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}}
При такой конфигурации скрипты работают, при запросе
client.test.domain/html/css/style.css выдает 404 Not found
в логе nginx видно что файл ищет
"/var/www/_test.domain/client/html/css/style.css"
если же сделать так
#root /var/www/_test.domain/client/;
index index.php index.html;
client_max_body_size 0;
location / {
root /var/www/_test.domain/client/;
}
location /html {
#root /var/www/_test.domain/;
alias /var/www/_test.domain/html;
}
то он пытается найти файл в "/etc/nginx/html/html/css/style.css"
замена на root тоже игнорируется.
location /html { root /var/www/_test.domain/; #alias /var/www/_test.
domain/html; }
пытается найти файл по "/var/www/_test.domain/client/html/css/style.css"
я уже сломал весь мозг. Потому как в документации сказано что root и alias
в location должно работать.
но вот у меня не работает.(((
Привет всем!
Возникла задача сделать, чтобы сайт открывался в Windows XP на IE 8. На
сайте
https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=ngin…
выбрал - создать конфиг под старые браузеры, получил набор шифров:
ssl_ciphers
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA;
Если верить интернету, то для работы сайта в IE 8 необходим последний в
списке "DES-CBC3-SHA", но почему сайт не открывается. Нашел в инете патч для
IE 8, который добавляет 256 битное шифрование для этого старого браузера и
он помог, но это не вариант.
Подскажите, что не хватает в конфиге, чтобы сайт открывался в этом браузере?
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,288640,288640#msg-288640
А что-как можно сделать что бы расшифровать https сессию в .pcap?
Нет, не сорм. Просто клиентский браузер какую-то фигню странную пишет,
типа
====
Server's response
Full response:
0 Missing status code HTTP/1.1
=====
и я хочу своими глазами увидеть что конкретно ему отправилось и что
именно пришло.
Максим, спасибо огромное! В итоге это именно то, что я и хотел получить.
>
>
> ---------- Forwarded message ----------
> From: Maksim Kulik <kulmaks(a)gmail.com>
> To: nginx-ru(a)nginx.org
> Cc:
> Bcc:
> Date: Mon, 27 Jul 2020 09:54:02 +0300
> Subject: Re: Возможно ли остановить выполнение правил внутри
> location/выйти из location
> Можно после if делать внутренний редирект на другой локейшен (если,
> конечно, в вашем случае нет какой-то сложной дальнейшей обработки и вас
> интересует только то, что записано в location / ) при помощи error_page. То
> есть:
>
> error_page 420 = @special_location;
>
> location /test/lfs_lock_test.git/info/lfs/locks{
> if ( $args ~ "lockservice=true" ) {
> return 420;
> }
> rewrite ^/test/lfs_lock_test.git/(.*) /$1 break;
> proxy_pass https://localhost:5002;
> access_log /var/log/gitlab/nginx/lfs_lock_access.log gitlab_access;
> error_log /var/log/gitlab/nginx/lfs_lock_error.log debug;
> }
>
> location @special_location {
> proxy_cache off;
> proxy_pass http://gitlab-workhorse;
> }
>
> пн, 27 июл. 2020 г. в 09:16, Роман Буренков <panzercheg(a)gmail.com>:
>
>>
>> А какая была бы более правильная логика? Я изначально хотел сделать 2
>> правила с (?)(?!) но почему в таком regex`е у меня всё равно не тот url,
>> что я хотел просачивался в location ( location ~
>> (?^/.*.git/info/lfs/locks$)(?!^.*&lockservice=true$))
>>
>>
А какая была бы более правильная логика? Я изначально хотел сделать 2
правила с (?)(?!) но почему в таком regex`е у меня всё равно не тот url,
что я хотел просачивался в location ( location ~
(?^/.*.git/info/lfs/locks$)(?!^.*&lockservice=true$))
вс, 26 июл. 2020 г. в 15:00, <nginx-ru-request(a)nginx.org>:
> Сообщения, предназначенные для списка
> рассылки nginx-ru, отправляйте по адресу
> nginx-ru(a)nginx.org
>
> Для изменения параметров подписки или
> отписки используйте веб-страницу
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> или отправьте письмо, в теле или теме
> которого будет слово 'help', по адресу
> nginx-ru-request(a)nginx.org
>
> Адрес администратора этого списка
> рассылки:
> nginx-ru-owner(a)nginx.org
>
> При ответе, пожалуйста, измените тему
> письма на более содержательную чем "Re:
> Содержание дайджеста списка рассылки
> nginx-ru..."
> В этом номере:
>
> 1. Возможно ли остановить
> выполнение правил внутри
> location/выйти из location (Роман Буренков)
> 2. Re: Возможно ли остановить
> выполнение правил внутри
> location/выйти из location (Сергей Олегович)
>
>
>
> ---------- Forwarded message ----------
> From: "Роман Буренков" <panzercheg(a)gmail.com>
> To: nginx-ru(a)nginx.org
> Cc:
> Bcc:
> Date: Sun, 26 Jul 2020 12:11:20 +0300
> Subject: Возможно ли остановить выполнение правил внутри location/выйти из
> location
> Я использую gitlab 12 СE ( 12.9.2 (ac5568eb5d8) ) и nginx из поставки
> gitlab (nginx 1.16.1 sha256:f11c2a6d )
>
> кусок моего location с правилами:
>
> location /test/lfs_lock_test.git/info/lfs/locks{
> if ( $args ~ "lockservice=true" ) {
> return 404;
> }
> rewrite ^/test/lfs_lock_test.git/(.*) /$1 break;
> proxy_pass https://localhost:5002;
> access_log /var/log/gitlab/nginx/lfs_lock_access.log gitlab_access;
> error_log /var/log/gitlab/nginx/lfs_lock_error.log debug;
> }
>
> я хочу обрабатывать все запросы на ^.*.git/info/lfs/locks внутри location,
> только если там не содержится lockservice=true в URI, в это случае,
> просто выйти из location ( без 404 ) ,т.к. в файле, который я правлю
> ( /var/opt/gitlab/nginx/conf/gitlab-http.conf ) есть в т.ч. и такое:
>
> location / {
> proxy_cache off;
> proxy_pass http://gitlab-workhorse;
> }
>
> т.е. если есть lockservice=true в URI, то не делать proxy_pass и в принципе не применять правила из моего location
>
>
>
>
>
>
>
>
>
> ---------- Forwarded message ----------
> From: "Сергей Олегович" <shadow.tehb(a)gmail.com>
> To: <nginx-ru(a)nginx.org>
> Cc:
> Bcc:
> Date: Sun, 26 Jul 2020 12:28:43 +0300
> Subject: Re: Возможно ли остановить выполнение правил внутри
> location/выйти из location
> Можно в if засунуть rewrite ... last; Тогда после выполнения условия будет
> совершён выход из этого location и поиск нового в соответствии с
> изменениями. Но мне сходу видятся проблемы, т.к. изначально логика
> построена неверно.
>
> Роман Буренков <panzercheg(a)gmail.com> 26 июля 2020 г. 12:11:41 написал:
>
>> Я использую gitlab 12 СE ( 12.9.2 (ac5568eb5d8) ) и nginx из поставки
>> gitlab (nginx 1.16.1 sha256:f11c2a6d )
>>
>> кусок моего location с правилами:
>>
>> location /test/lfs_lock_test.git/info/lfs/locks{
>> if ( $args ~ "lockservice=true" ) {
>> return 404;
>> }
>> rewrite ^/test/lfs_lock_test.git/(.*) /$1 break;
>> proxy_pass https://localhost:5002;
>> access_log /var/log/gitlab/nginx/lfs_lock_access.log gitlab_access;
>> error_log /var/log/gitlab/nginx/lfs_lock_error.log debug;
>> }
>>
>> я хочу обрабатывать все запросы на ^.*.git/info/lfs/locks внутри location,
>> только если там не содержится lockservice=true в URI, в это случае,
>> просто выйти из location ( без 404 ) ,т.к. в файле, который я правлю
>> ( /var/opt/gitlab/nginx/conf/gitlab-http.conf ) есть в т.ч. и такое:
>>
>> location / {
>> proxy_cache off;
>> proxy_pass http://gitlab-workhorse;
>> }
>>
>> т.е. если есть lockservice=true в URI, то не делать proxy_pass и в принципе не применять правила из моего location
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru(a)nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru(a)nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru