• Почему копятся established connections?

    @metajiji
    established - значит соединение установлено.

    Судя по всему:
    1. Его не закрывают (в коде go)
    2. Соединение реально установлено и так задумано.

    Про "перестает отвечать на запросы", вероятно не настроен "http листенер", а именно опция "backlog" - количество обрабатываемых клиентов на один воркер, кстати если там ядер хватает, то можно и воркеров сделать побольше.
    Ответ написан
  • Как без проводов сделать подключить интернет на даче, на расстояние 200м?

    @metajiji
    Можно в режиме моста взять такие с направленными антаннами:
    routerboard.com/RBSXTKit
    Ответ написан
    Комментировать
  • Как настроить Mikrotik, чтобы он мог работать и по LTE, и по проводу, если заранее мы не знаем, будет провод или свисток?

    @metajiji
    Для маршрутов можно назначить метрики, с настройками LTE думаю без скриптописания не обойтись, вероятно под разные девайсы вероятнее всего будут отличаться настройки, можно попробовать задетектировать модель и применить сет настроек из скрипта.

    По поводу команд, можно настроить руками через веб гуйню или через winbox, не важно, а потом просто сделать /export, например так:
    ssh admin@krot /export > krot.txt

    Либо протыкиванием нужных кнопок в winbox или веб гуйне.
    Ответ написан
    Комментировать
  • Django как настроить отдачу картинок с локального хранилища?

    @metajiji
    Остается только привести дефолтный конфиг nginx для Django:
    server {
    	listen 80;
    	server_name domain.ltd;
    	root /srv/app/public;
    
    	# Logs.
    	access_log /var/log/nginx/domain.ltd_access.log;
    	error_log /var/log/nginx/domain.ltd_error.log;
    
    	# Options.
    	client_max_body_size 0;
    	keepalive_timeout 5;
    
    	# Locations.
    	location / {
    		try_files $uri @proxy_to_app;
    	}
    
    	location @proxy_to_app {
    		proxy_pass http://127.0.0.1:8001;  # See guniconf.py file.
    		proxy_set_header Host $http_host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header X-Forwarded-Proto $scheme;
    		proxy_redirect off;
    	}
    }


    В таком случае, удобно будет организовать проект следующим образом:
    /srv/app/
    ├── example
    │   ├── forms.py
    │   ├── __init__.py
    │   ├── migrations
    │   ├── models.py
    │   ├── settings.py
    │   ├── static
    │   ├── templates
    │   ├── urls.py
    │   ├── views.py
    │   └── wsgi.py
    ├── logs
    ├── manage.py
    ├── public
    │   └── static
    ├── README.md
    ├── requirements.txt
    └── venv


    Для работы этой схемы проекта нужно добавить в settings.py:
    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'public', 'static')


    При такой конфигурации веб сервер смотрит в каталог /srv/app/public/ и попытается сперва отдать с диска то, что запросил пользователь, если не найдет, то отправит запрос в Django.
    А еще появляется возможность складывать свои собственные статические файлы в этот каталог (например zip архив или pdf документ), кроме того, нет необходимости что-то менять в конфигурации nginx, что очень удобно.

    Для media можно поступить аналогично, если для скачивания media не предусмотрена авторизация, для этого нужно добавить в settings.py:
    STATIC_URL = '/media/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'public', 'media')

    /srv/app/
    ├── example
    ├── logs
    ├── public
    │   ├── media
    │   └── static
    └── manage.py


    Если все-таки авторизация нужна, то не стоит складывать каталог media в public, в таком случае лучше придерживаться стандартной конфигурации:
    STATIC_URL = '/media/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'media')

    /srv/app/
    ├── example
    ├── logs
    ├── media
    ├── public
    │   └── static
    └── manage.py

    Еще порекомендовал бы настроить X-Accel-Redirect для отдачи media через nginx, но об этом я в этом посте уже не буду писать.
    Ответ написан
    Комментировать
  • DLE 11 + nginx не работает Rewrite, как быть?

    @metajiji
    ...
    index index.php index.html index.htm;
    location ~ \.php$ {
    ...
    fastcgi_index  index.php;
    }

    Судя по конфигу, не указан index - документ по умолчанию. В случае использования nginx + php-fpm его указывать нужно в 2 местах, как в коде выше.

    Кстати, конфиг слишком сложен и ужасен, уверен, что его можно сделать без этой кучи реврайтов, а так же без if констукций. Рекомендую почитать про try_files и поискать готовые конфиги nginx для DLE, уверен, они существуют и в более приятном виде.
    Ответ написан
    Комментировать
  • Как убрать splash text при загрузке системы в Linux?

    @metajiji
    Необходимо добавить ядру опцию quiet
    Ответ написан
    Комментировать
  • Как сделать правильный редирект https Nginx/BitrixVM?

    @metajiji
    По поводу слеша, все же просто:
    try_files $uri $uri/ =404;
    Но лучше, если само приложение будет понимать, что слешик, нужно добавить, если его вдруг нет, потому, что в текущей конфигурации все локейшены отдаются на совесть приложению.
    Ответ написан
  • Как сделать в Zabbix графики в стиле RRD?

    @metajiji
    Нужно просто чаще обновлять метрику.
    Ответ написан
  • Как защитить директории сайта от POST?

    @metajiji
    Если есть сомнения в движке или что вы там используете, а править код нет возможности, то можно принять простые меры:
    1. выставить chmod на каталоги 755 и файлы 644, а если имеются каталоги для загрузок, то только там 777.
    2. Потратить немного времени и составить список всех php скриптов, которые вызываются напрямую и в конфиге nginx разрешить эти локейшены обрабатывать как php скрипты, а на все остальные php локейшены выдавать 403.
    3. для большей "паранои" аплоад каталоги можно отслеживать через fail2ban и банить при первой же попытке вызвать оттуда любой php скрипт (ведь там могут быть только картинки/файлы, но никак не php файлы).

    Я проделывал подобное в нескольких местах (стояла joomla 1.2) и у атакующих резко снижался интерес к такому сайту.
    Ответ написан
    Комментировать
  • Как избавиться от Mixed Content на ssl?

    @metajiji
    Как вариант проксировать домен/локейшен с домена где нет https.
    Ответ написан
    Комментировать
  • Nginx. Как заменить пробелы на "+" в строке парамеров?

    @metajiji
    Попробуйте
    http://wiki.nginx.org/HttpSubsModule

    Или 100% вариант:
    http://nginx.org/ru/docs/http/ngx_http_perl_module.html
    Ответ написан
    Комментировать
  • Как перепаять PS/2 клавиатуру на USB?

    @metajiji
    USB клавиатуру на PS/2 можно просто перепаять, но необходимо, чтобы USB клавиатура умела работать с PS/2, распиновку можно легко прозвонить по переходнику ps/2->USB

    Как уже писали выше, PS/2 клавиатура не будет работать с USB портом - они работают по разным стандартам.
    Повторюсь, не любая USB клавиатура заработает в PS/2 порту (USB клава должна уметь работать через переходник USB 2 ps/2)
    Ответ написан
    Комментировать
  • Кем лучше банить?

    @metajiji
    1. логи анализировать через fail2ban, производительность будет удовлетворительная.
    2,3,4,5 нагрузка на сервер может быть гораздо сильно снижена при использовании ipset

    Если ip адреса или сети (банить лучше сразу целые сети - нагрузка меньше) заведомо известны и меняться не будет длительное время, есть смысл использовать route blackhole:
    Например:
    ip route add blackhole 127.0.0.1/32
    Так же этот вариант приемлем, если фаерволл недоступен. Можно вообще использовать только этот вариант, без ipset+iptables. Естественно было бы неплохо сделать некий скирпт для суммаризации добавленных Ip.

    Так же хочу отметить про netstat, вместо него лучше используйте ss он так же покажет лучшие результаты, чем netstat.
    Ответ написан
    Комментировать
  • Как перезагрузить nginx без root'а?

    @metajiji
    Добавлю в копилку еще вариант с expect или empty, если сильно принципиально вводить пароль :)
    Ответ написан
    Комментировать
  • Авторизация свитчей на Radius?

    @metajiji
    проверьте, чтобы files был в:
    authorize {
    ...
    files
    ...
    }
    accounting {
    ...
    files
    ...
    attr_filter.accounting_response # стоит проверить, мб. что-то нужно подкрутить.
    }

    А вообще было бы неплохо увидеть полный вывод команды freeradius -X вместе с 1 попыткой авторизации.
    Ответ написан
    Комментировать
  • Nginx redirect from http to https?

    @metajiji
    Согласно официальной документации рекомендуют использовать такую конструкцию:
    server {
            listen 80;
            server_name example.com;
            return 301 https://$server_name$request_uri;  # enforce https
    #        rewrite ^(.*) https://www.example.com$uri permanent;
    }
    Ответ написан
    6 комментариев