areca-http
Sergey Kobzar
sergey.kobzar на itcraft.org
Пн Апр 11 16:11:56 MSD 2011
On 04/11/11 06:09, Alexander Petrovsky wrote:
>
>
> 11 апреля 2011 г. 9:01 пользователь Sergey Kobzar
> <sergey.kobzar at itcraft.org <mailto:sergey.kobzar at itcraft.org>> написал:
>
> Есть веб сервис по управлению RAID контроллером areca-http:
>
> # netstat -nlp | grep areca
> tcp 0 0 127.0.0.1:1080 <http://127.0.0.1:1080>
> 0.0.0.0:* LISTEN 12924/areca-http
> tcp 0 0 127.0.0.1:1081 <http://127.0.0.1:1081>
> 0.0.0.0:* LISTEN 12924/areca-http
> tcp 0 0 127.0.0.1:1082 <http://127.0.0.1:1082>
> 0.0.0.0:* LISTEN 12924/areca-http
> udp 0 0 127.0.0.1:7890 <http://127.0.0.1:7890>
> 0.0.0.0:* 12924/areca-http
> udp 0 0 127.0.0.1:7891 <http://127.0.0.1:7891>
> 0.0.0.0:* 12924/areca-http
>
>
> Необходимо с помощью Nginx проксировать этот сервис.
>
> Конфиг:
>
> server {
> listen 443 default ssl;
> server_name localhost;
>
> ssl on;
> ssl_certificate /etc/ssl/private/cert.crt;
> ssl_certificate_key /etc/ssl/private/cert.key;
>
> access_log /var/log/nginx/default-ssl_access.log main;
> error_log /var/log/nginx/default-ssl_error.log info;
>
> root /home/www/default-ssl/htdocs;
>
> location ^~ /areca_main {
> proxy_pass http://localhost:1080/;
>
> set $fixed_destination $http_destination;
> if ( $http_destination ~* ^https(.*)$ ) {
> set $fixed_destination http$1;
> }
>
> proxy_set_header Destination $fixed_destination;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> }
>
> include /etc/nginx/fastcgi_main.conf;
> }
>
>
> Но на сервис попасть не могу. В логах:
> 2011/04/11 00:40:16 [error] 12713#0: *12 upstream timed out (110:
> Connection timed out) while reading upstream, client: 94.179.46.103,
> server: localhost, request: "GET /areca_main HTTP/1.1", upstream:
> "http://127.0.0.1:1080/", host: "64.205.149.45"
> 2011/04/11 00:40:47 [info] 12713#0: *12 client 94.179.46.103 closed
> keepalive connection
>
> Что не так?
>
>
> Кажется это означает, что nginx не дождался ответа от проксируемого
> сервера. Попробуйте поиграться с директивами:
>
> proxy_read_timeout;
> proxy_send_timeout;
Да - так и есть. Если я вешаю сервис на внешний интерфейс, то могу к
нему подключиться без проблем и работает он шустро.
Дефолтных таймаутов в 60 сек - с головой.
Дело в том, что сам сервис areca-http в плане безопасности довольно
корявый, но свою работу делает исправно. Поэтому возникла идея спрятать
его за nginx (который и так крутится на сервере) и прикрыть http
аутентификацией.
Вот только что-то не выходит к нему подключиться через nginx...
Подробная информация о списке рассылки nginx-ru