Я пытаюсь интегрировать внутреннюю установку GitLab с входящим веб-перехватчиком Slack, но у меня проблема: машина, на которой GitLab может получить доступ только к другим машинам в той же сети. У меня есть виртуальная машина, которая находится в той же сети и имеет внешний доступ.
Веб-перехватчик Slack - это такой URL-адрес:
https://hooks.slack.com/services/T18QMD0NM/C09PY5XKO/52lDzmkoxL51p9NLRqxQ9Kq2
Но поскольку я не могу использовать это в GitLab, я настроил службу Slack в GitLab, чтобы вместо этого отправлять запросы по следующему URL-адресу:
https://192.168.1.220:3128/services/T18QMD0NM/C09PY5XKO/52lDzmkoxL51p9NLRqxQ9Kq2
192.168.1.220
IP-адрес виртуальной машины и 3128
здесь Squid слушает.
Как использовать Squid для пересылки всех входящих запросов на hooks.slack.com
?
P.S: У меня чистая установка Squid, никаких настроек не менял.
Я полагаю, что лучший способ решить вашу проблему - это указать GitLab на использование исходящего http-прокси.
Вы можете сослаться этот ссылка для настройки http-прокси в вашей установке GitLab.
-- Обновить
#!/usr/bin/perl
use strict;
# Turn off buffering to STDOUT
$| = 1;
# Read from STDIN
while (<>) {
my @elems = split; # splits $_ on whitespace by default
# The URL is the first whitespace-separated element.
my $url = $elems[0];
# Handle local IP links and translate them to https://hooks.slack.com
# with the rest of the URL intact (if present) and ignore warnings.
# 192.168.1.220:3128
if ($url =~ m#^https://192\.168\.1\.220(/.*)?#i) {
$url = "https://hooks.slack.com${1}";
print "$url\n";
}
}
Добавьте следующую строку кода в файл squid.conf:
redirect_program /path/to/the/script/above/redirect_program.pl
И, наконец, перезагрузите / перенастройте squid, используя:
/path/to/executable/squid -k reconfigure