Понадобилось мне отвечать на http запросы извне и неким образом их обрабатывать (подключались к терминалам экспресс-оплаты). Первое решение было на Nginx+FastCGI(PHP), что было несколько неоправданно тяжеловесно. И тут меня посетили старые воспоминания и благодаря ru_root в ЖЖ и Гуглю было сделано следующее:
Этим мы объяснили серверу, что на порту 433 у нас теперь живет сервис по фамилии freecashpayment
Так мы заставляем слушать порт 433 и отвечать на нем скриптом freecashpayment.sh
В результате в скрипте в переменной $url у нас имееются все параметры, которые нам прислали в GET-запросе. echo же нам выведет все что надо в ответ.
Мы счааааасливы :)
[root@mysql-02 /etc]# cat services | grep freecashpayment
freecashpayment 433/tcp
freecashpayment 433/udp
Этим мы объяснили серверу, что на порту 433 у нас теперь живет сервис по фамилии freecashpayment
[root@mysql-02 /etc]# cat inetd.conf | grep freecashpayment
freecashpayment stream tcp nowait root /usr/home/firefly/freecashpayment.sh freecashpayment.sh
Так мы заставляем слушать порт 433 и отвечать на нем скриптом freecashpayment.sh
[root@mysql-02 /usr/home/firefly]# cat freecashpayment.sh
#!/usr/local/bin/bash
read request
while /usr/bin/true; do
read header
[ "$header" == $'\r' ] && break;
done
url="${request#GET }"
url="${url% HTTP/*}"
echo $url
В результате в скрипте в переменной $url у нас имееются все параметры, которые нам прислали в GET-запросе. echo же нам выведет все что надо в ответ.
Мы счааааасливы :)