LINUX.ORG.RU

Сообщения shift-47

 

nginx подстановка аргументов

Всем привет. Помогите разобраться с подстановкой аргументов Не могу понять, как подставить в URL при заходе на сайт. Например заходишь по ссылке на: https://site.com А тебе nginx поставляет(редиректит)

https://site.com/?city=[город]&facility=[еще одна переменная]

Пытался сделать таким методом

rewrite ^(.*) http://$server_name/?city=[город]&facility=[еще одна переменная];
if ($http_host = $server_name) {
  rewrite ^(.*)$  http://$server_name/?city=[город]&facility=[еще одна переменная] permanent;
}

и получаю ошибки to many redirect подскажите, что я делаю не так

 

shift-47
()

Haproxy -> Haproxy -> nginx

Всем привет. Столкнулся с такой проблемой. Было принято решение использовать схему соединения для доступа к сайтам Haproxy1/tcp -> Haproxy2/https -> nginx/http

Haproxy1/tcp - выступает в качестве балансировщика, сервер находится в первом облаке.

Haproxy2/https - занимается https и гонит трафик на nginx. в этом случае haproxy и nginx находятся в локальной сети ДЦ.

Задача реализовать данную статью (https://habr.com/ru/post/247297/). Только у меня как писал выше в схеме еще один прокси сервер.

Нужна именно Балансировка на транспортном уровне (Layer 4): передача TCP-трафика с HAProxy на Nginx.

Сложность сейчас в том, что при настройке сервера haproxy1 сайт работает нормально, передает tcp трафик и все круто, но на сервере harproxy2 я получаю IP не юзера, который зашел на сайт, а самого haproxy1

defaults
        log     global
        option  redispatch
        option  tcp-smart-accept
        option  tcp-smart-connect
        retries 3
        maxconn 2000
        timeout connect 5000
        timeout check   3000
        timeout client  50000
        timeout server  50000

frontend https_frontend_ssl_pass
        mode tcp
        bind *:443
        default_backend web_server_tcp

backend web_server_tcp
        mode tcp
        balance roundrobin
        server s1_tcp 2.2.2.2:443 check
        #server s2_tcp 2.2.2.2:443 send-proxy check

Проблема заключается в последней строчке, при использовании send-proxy сайт падает, а в логах haproxy2 получаю ошибку.

https_sites/1: SSL handshake failure

В моем случае я так понимаю, нужно докрутить Haproxy2/https. Но не знаю в какую сторону смотреть. В документации пока ответа не нашел. Настройка Haproxy2/https

frontend http_sites
        mode    http
        option  httplog
        option  dontlognull
        bind *:80 process 1

        acl letsencrypt-acl path_beg /.well-known/acme-challenge/
        redirect scheme https code 301 if !letsencrypt-acl

        use_backend letsencrypt-backend if letsencrypt-acl

        default_backend nginx-backend

frontend https_sites
        mode    http
        option  httplog
        option  dontlognull
        bind *:443 ssl crt /etc/haproxy/ssl  process 1

        http-request set-header X-Forwarded-Proto https

        default_backend nginx-backend

backend nginx-backend
        mode    http
        option forwardfor
        option httpchk GET /
        http-check send hdr Host localhost

        server nginx-1 127.0.0.1:8080 weight 50 maxconn 1000 check inter 4s


backend letsencrypt-backend
        mode    http
        server letsencrypt 127.0.0.1:8888

 ,

shift-47
()

Zabbix

Почитав статьи о мониторинге zabbix возник вопрос. Как вообще пишутся подобные скрипты https://serveradmin.ru/monitoring-web-sayta-v-zabbix/

Zabbix принимает входные данные только в JSON формате? Хочу понять, где и как начать. Поставил перед собой задачу. На хосте собирать список доменов в конфигах nginx раз в день, и отправлять их на проверку доступности сайтов, добавлять каждый в ручную, очень муторно, т.к. их больше 500. Я понимаю, что мне нужно в доку смотреть, но можете подскать, чтоб написать подобный шаблон со скриптами, мне нужно сначала записывать все домены в файл, затем подготовить их, чтоб при вызове я получал данные в формате JSON, а затем сделать discovery + алерты, ну и привязать данных шаблон к хосту. Или я что-то упустил?

 ,

shift-47
()

Парсинг файла

Всем привет, имею файл такого вида:

login1:
login2:
login3:

И второй файл такого вида:

password1
password2
password3

Дело в том, что второй файл был сгенерирован для каждого пользователя. Админ который работал до меня эти 2 файла разделил. В общем вопрос. Как можно сделать 1 файл подобного формата?

login1:password1
login2:password2
login3:password3

Дело в том, что соблюдение строк важно. т.е. 1 строка в файле пользователя и в файле пароля имеют конструкцию login1:password1 и т.д., но они разделены. Как можно с помощью софта или скриптов сделать объединение?

 , ,

shift-47
()

Ротация файлов и папок

Всех привествую. Есть такая задача. На сервере лежат папки подобного строения. В которыз лежат архивы бэкапов

/opt/backup/*/*/pg/2020/09/07

даты естественно меняются в зависимости от созданного бэкапа

Сливаются они по FTP с других хостов. Теперь условия, которые я не знаю как реализовать в скрипте.

/opt/backup/*/*/pg/2020/09/07

хочется чтоб проверялась папка с месяцем по маске

/opt/backup/*/*/pg/*/*/* 

и удаляла все старые папки, которые старше 14 дней, затем поднималась на папку выше, т.е. шла проверка месяца /opt/backup///pg// и так же проверяла изменения за последние 14 дней, в общем такое же действие и с годом.

Все это можно реализовать с помощью

find /opt/backup/*/*/pg/*/*/* -type d -mtime +336

Но есть одно но, если новых бэкапов не будет поступать в данные папки, то рано или поздно удаляться все бэкапы, чего не хотелось бы. Ибо скрипт будет запускаться каждый час. Подскажите, как можно решить данную проблему.

 , , ,

shift-47
()

RSS подписка на новые темы