Este exemplo deve ser adequado para você: link
Basicamente:
Forwarding port 15432 to socket /srv/mongodb-27017.sock:
socat -d -d TCP4-LISTEN:15432,fork UNIX-CONNECT:/srv/mongodb-27017.sock
Eu tenho um programa quando executado, começa a listar na porta 12345
$ ./cool_script.pl
Meu administrador do Linux diz que é contra a política abrir portas. Ele diz que eu tenho permissão para usar o ~ / cool_script.sock (soquete de domínio unix) para comunicação. Aparentemente, seu servidor nginx pode ler e gravar na meia como se fosse uma porta tcp.
De qualquer forma, existe uma maneira de envolver um executável (./cool_script.pl) para que a tentativa de abrir uma porta de escuta seja redirecionada para um arquivo .sock.
O que eu tentei: ler alguma documentação para socat
Este exemplo deve ser adequado para você: link
Basicamente:
Forwarding port 15432 to socket /srv/mongodb-27017.sock:
socat -d -d TCP4-LISTEN:15432,fork UNIX-CONNECT:/srv/mongodb-27017.sock
Você precisará modificar o funcionamento do programa. Faça-o escutar em um soquete Unix em vez do TCP. Assumindo que o programa está dinamicamente ligado à biblioteca padrão (virtualmente todos os programas são), você não precisa mudar o programa em si, da maneira que você o executa. Você pode fazer isso com LD_PRELOAD
, carregando um wrapper para o TCP função de abertura de soquete que, em vez disso, abre um soquete Unix. ttu
faz exatamente isso (de acordo com a documentação, nunca usei).