ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx-0.8.28



Все еще не получается использовать unix domain sockets так, как хотелось бы.

Идея была в том, что есть коллекция файлов на медленном NFS сервере и хотелось 
бы отдавать их в инет. Для этого я замкнул на себя два виртуальных сервера, 
один из которых читает данные с NFS и выступает backend'ом для другого сервера, 
который, в свою очередь, выступает прокси для первого, с хранилищем на 
локальном диске, и далее отдает файлы в Интернет. 

Проблема вылезает из-за использования директивы: user nginx; в конфиге.

При старте сокет создается еще root, с правами 755

srwxr-xr-x 1 root root 0 Nov 24 13:50 storage.socket

Все бы хорошо, но второй виртуальный сервер, который пытается читать из этого 
сокета, делает это с правами пользователя nginx, в результате чего обламывается 
с:

2009/11/24 13:50:51  12125#0: *1 connect() to unix:/var/run/storage.socket 
failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, 
server: storage.localdomain, request: "GET /", upstream: 
"http://unix:/var/run/storage.socket:/";

По той же причине не срабатывает restart сервиса, т.к. пользователь с правами 
nginx не может удалить сокет при выходе и спотыкается на нем при старте.

2009/11/24 14:13:11  13198#0: bind() to unix:/var/run/storage.socket failed 
(98: Address already in use)

В первом приближении конфиг такой:

user  nginx;
worker_processes  10;
worker_rlimit_nofile 100000;

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    server {
        listen       unix:/var/run/storage.socket default;
        server_name  _;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }

    server {
        listen     8080;
        server_name  storage.localdomain;

        location / {
            proxy_pass http://unix:/var/run/storage.socket:/;
        }
    }

}

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,25026,25290#msg-25290


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.