Сокетное соединение через nginx - PullRequest
0 голосов
/ 11 февраля 2011

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

Я хочу получить доступ к сервисам, предоставляемым для машины разработки, из Интернета, поэтому мне нужно перенаправить входящий трафик на сервер разработки

1.- Запрос клиента с использованием сокетного подключения к домену .domain.com (порт 7081)

2.- nginx должен переслать это, у меня есть следующий код для этого

Примечание: a.domain.com имеет интерфейс VPN на 10.8.0.1

server {
    listen       7081;
    server_name  a.domain.com;
    location / {
        proxy_pass http://10.8.0.210:7081;
        proxy_set_header  X-Real-IP  $remote_addr;
    }
}

3.- На сервере разработки (10.8.0.210) у меня есть список служб в порту 7081.

Соединение с сокетом от клиента вернуло следующее

<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/0.6.35</center>
</body>
</html>

4.- nginx сервер на a.domain.com зарегистрировал следующее

XXX.XXX.XX.XX - - [11/Feb/2011:08:58:10 -0300] "-" 400 173 "-" "-"

Любые идеи

спасибо

1 Ответ

1 голос
/ 11 февраля 2011

Неверный запрос - означает, что это не http-запрос.
Nginx может использовать прокси только для протоколов http / smtp / pop3 / imap.

Если вы хотите использовать прокси-сервер еще что-то, вы должны использовать дляпример DNAT в iptables

...