Re: contrib/vim, contrib/geo2nginx.pl, contrib/unicode2nginx
> В tar.gz дистрибутиве есть каталог contrib/vim - можно ли сделать так, > чтобы содержимое этого каталога при установке пакета ложилось в каталог > /usr/share/vim/vimfiles ? Это было бы очень удобно для пользователей vim 1) есть же ещё как минимум neovim 2) обычно это выносят в отдельный пакет 3) я, если честно, уже запутался, где более актуальный: в тарболле nginx или среди тех, что на гитхабе (там они появились раньше, чем в тарболле) ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Proxy_cache
В общем решили на каждом Nginx держать свой кэш. и с помощью sync2 делать синхронизацию этого кэша. Если один nginx отвалится то LB перенаправит на другой. как бы все ок. Тут у меня другая проблема появилась, уже моск весь сломал. не отдает gunicorn стили. [error] 11431#0: *1 open() "/root/env/myproject/static/admin/css/login.css" failed (13: Permission denied), client: 192.168.200.46, server: 10.230.40.190, request: "GET /static/admin/css/login.css HTTP/1.1", host: "10.230.40.188", referrer: "http://10.230.40.188/admin/login/?next=/admin/"; blog.conf server { listen 80; server_name 10.230.40.190; location / { proxy_pass http://10.230.40.190:8009; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } location /static/ { autoindex off; root /root/env/myproject; } setting.py import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(__file__)) RESOURCE_DIR = os.path.dirname(BASE_DIR) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'grj&8iul8=*5-!nbaf-86*+*3s!j%%pj(wdjg$x+jalbet@shm' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = ['*'] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'myproject.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'myproject.wsgi.application' # Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'gunicorn', 'USER': 'gunicorn', 'PASSWORD': 'gunicorn', 'HOST': '10.230.40.194', 'PORT': '5432', } } # Password validation # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/1.11/topics/i18n/ LANGUAGE_CODE = 'ru-ru' TIME_ZONE = 'Asia/Almaty' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_ROOT = os.path.join(RESOURCE_DIR, 'static') STATIC_URL = '/static/' MEDIA_ROOT = os.path.join(RESOURCE_DIR, 'media') MEDIA_URL = '/media/' TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')] } Когда захожу на сервер gunicorn напрямую http://10.230.40.190:8009/admin в консоли ошибки Not Found: /static/admin/css/login.css Not Found: /static/admin/css/base.css Не могу понять, где он пытается найти папку static? в корне что ли? Я везде симлинки понаделал, результата 0 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,122768,276803#msg-276803 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: contrib/vim, contrib/geo2nginx.pl, contrib/unicode2nginx
На правах рекламы https://github.com/m-messiah/ip2geo Отличная альтернатива конвертору 11 окт. 2017 г. 0:22 пользователь "Gena Makhomed" написал: On 10.10.2017 19:45, Konstantin Pavlov wrote: Пакеты nginx 1.13.6, доступные в официальном репозитории mainline на > nginx.org, собраны на CentOS 7.4 с openssl 1.0.2. > Отлично, спасибо! В tar.gz дистрибутиве есть каталог contrib/vim - можно ли сделать так, чтобы содержимое этого каталога при установке пакета ложилось в каталог /usr/share/vim/vimfiles ? Это было бы очень удобно для пользователей vim - тогда vim будет автоматически похватывать эти конфигурационные файлы. И второй вопрос, можно ли скрипт contrib/geo2nginx.pl положить в каталог /usr/share/nginx ? это будет удобно для тех, кто пользуется базой http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip И заодно содержимое каталога contrib/unicode2nginx положить в каталог /usr/share/nginx/unicode2nginx ? Места эти три файла занимают не много. P.S. Может быть кому-то пригодится: cat /etc/nginx/geo/renew #!/bin/bash URL=http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip ZIP=/etc/nginx/geo/GeoIPCountryCSV.zip CSV=/etc/nginx/geo/GeoIPCountryWhois.csv CONF=/etc/nginx/geo/geo_ip_country.conf if ! /usr/bin/curl --silent --output $ZIP --time-cond $ZIP --remote-time $URL ; then exit 1 ; fi if ! /usr/bin/unzip -qq -o $ZIP $(basename $CSV) -d $(dirname $CSV) ; then exit 1 ; fi if ! /usr/bin/perl /usr/share/nginx/geo2nginx.pl < $CSV > $CONF ; then exit 1 ; fi if ! /usr/bin/systemctl reload nginx ; then exit 1 ; fi cat /etc/cron.d/renew-geo RANDOM_DELAY=45 0 3 * * * root /etc/nginx/geo/renew -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
contrib/vim, contrib/geo2nginx.pl, contrib/unicode2nginx
On 10.10.2017 19:45, Konstantin Pavlov wrote: Пакеты nginx 1.13.6, доступные в официальном репозитории mainline на nginx.org, собраны на CentOS 7.4 с openssl 1.0.2. Отлично, спасибо! В tar.gz дистрибутиве есть каталог contrib/vim - можно ли сделать так, чтобы содержимое этого каталога при установке пакета ложилось в каталог /usr/share/vim/vimfiles ? Это было бы очень удобно для пользователей vim - тогда vim будет автоматически похватывать эти конфигурационные файлы. И второй вопрос, можно ли скрипт contrib/geo2nginx.pl положить в каталог /usr/share/nginx ? это будет удобно для тех, кто пользуется базой http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip И заодно содержимое каталога contrib/unicode2nginx положить в каталог /usr/share/nginx/unicode2nginx ? Места эти три файла занимают не много. P.S. Может быть кому-то пригодится: cat /etc/nginx/geo/renew #!/bin/bash URL=http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip ZIP=/etc/nginx/geo/GeoIPCountryCSV.zip CSV=/etc/nginx/geo/GeoIPCountryWhois.csv CONF=/etc/nginx/geo/geo_ip_country.conf if ! /usr/bin/curl --silent --output $ZIP --time-cond $ZIP --remote-time $URL ; then exit 1 ; fi if ! /usr/bin/unzip -qq -o $ZIP $(basename $CSV) -d $(dirname $CSV) ; then exit 1 ; fi if ! /usr/bin/perl /usr/share/nginx/geo2nginx.pl < $CSV > $CONF ; then exit 1 ; fi if ! /usr/bin/systemctl reload nginx ; then exit 1 ; fi cat /etc/cron.d/renew-geo RANDOM_DELAY=45 0 3 * * * root /etc/nginx/geo/renew -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.13.6
Извиняюсь, может где-то пропустил анонс, репозиторий дебиан еще обновляется? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx mainline из официального репозитория - не работает HTTP/2 в браузере Chrome
Здравствуйте, Gena, On 23/09/2017 23:37, Gena Makhomed wrote: > Здравствуйте, All! > > CentOS 7.4 с OpenSSL 1.0.2k-fips (пакет openssl-1.0.2k-8.el7.x86_64) > устанавливаю nginx версии 1.13.5 из официального репозитория mainline > и при этом вижу, что в Google Chrome не работает протокол HTTP/2 > > почему? > > ведь в системе уже установлена новая версия OpenSSL с поддержкой ALPN > > # nginx -V > nginx version: nginx/1.13.5 > built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) > built with OpenSSL 1.0.1e-fips 11 Feb 2013 > > наверное проблема в том, что nginx из официального репозитория mainline > собирается с устаревшей библиотекой OpenSSL 1.0.1e-fips > > можно ли как-то исправить эту проблему? Пакеты nginx 1.13.6, доступные в официальном репозитории mainline на nginx.org, собраны на CentOS 7.4 с openssl 1.0.2. Отдельно отмечу, что на CentOS/RHEL 7.0-7.3 эти пакеты установить не получится, если ОС сконфигурирована на использование репозиториев конкретного релиза, а не всей 7 ветки. При этом ошибка установки пакета будет выглядеть примерно так: Error: Package: 1:nginx-1.13.6-1.el7_4.ngx.x86_64 (nginx) Requires: libcrypto.so.10(OPENSSL_1.0.2)(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest Решение тут только одно - обновляться до 7.4, т.к. предыдущие minor-релизы не поддерживаются авторами дистрибутива (в т.ч. по security-проблемам). -- Konstantin Pavlov www.nginx.com ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx-1.13.6
Изменения в nginx 1.13.6 10.10.2017 *) Исправление: при использовании директивы ssl_preread в модуле stream не работало переключение на следующий бэкенд. *) Исправление: в модуле ngx_http_v2_module. Спасибо Piotr Sikora. *) Исправление: nginx не поддерживал даты после 2038 года на 32-битных платформах с 64-битным time_t. *) Исправление: в обработке дат до 1970 года и после 1 года. *) Исправление: в модуле stream таймауты ожидания UDP-пакетов от бэкендов не логгировались или логгировались на уровне info вместо error. *) Исправление: при использовании HTTP/2 nginx мог вернуть ошибку 400, не указав в логе причину. *) Исправление: в обработке повреждённых файлов кэша. *) Исправление: при кэшировании ошибок, перехваченных error_page, не учитывались заголовки управления кэшированием. *) Исправление: при использовании HTTP/2 тело запроса могло быть повреждено. *) Исправление: в обработке адресов клиентов при использовании unix domain сокетов. *) Исправление: при использовании директивы "hash ... consistent" в блоке upstream nginx нагружал процессор, если использовались большие веса и все или почти все бэкенды были недоступны. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru