Ok, ontem eu finalmente consegui servidores nginx e uWSGI rodando no meu PC. Arquivos de configuração Nginx e uWSGI, novos usuários, grupos e seus privilégios, e chrootdir para SSH que eu configurei com base no conhecimento disponível na web. Infelizmente, eu não confio muito, então eu queria perguntar aos administradores de sistema se eu não tiver cometido um grande erro em algum lugar, o que fará com que um dia eu diga adeus ao servidor.
Para o servidor HTTP eu uso apenas o diretório / srv dir, que estrutura e privilégios são os seguintes:
drwxr-xr-x 2 root root 4096 2012-02-03 04:16 nginx
-rw-r--r-- 1 root root 411 2012-02-03 04:25 Site1.conf
-rw-r--r-- 1 root root 170 2012-02-02 23:59 Site2.conf
drwxrwxr-x 2 root www 4096 2012-02-03 04:25 sockets
srw-rw---- 1 Site1-www www 0 2012-02-03 04:25 Site1.socket
drwxr-xr-x 2 root root 4096 2012-02-03 04:09 uwsgi
-rw-r--r-- 1 root root 190 2012-02-03 04:10 DjangoAutoreload.py
-rw-r--r-- 1 root root 1477 2012-02-03 04:13 Site1.yaml
drwxr-xr-x 5 root root 4096 2012-02-03 03:44 www
drwxr-xr-x 3 root root 4096 2012-02-03 03:49 Site1
drwxr-xr-x 11 Site1 www 4096 2012-02-03 03:48 www
... all files with Site1 user, sftponly group and rw-r--r--
A pasta / srv / nginx em cada arquivo separado contém a configuração do novo servidor virtual.
A pasta / srv / sockets contém apenas arquivos de soquete que são usados pelo uWSGI ang nginx, o arquivo de exemplo com priviliges já existe.
A pasta / srv / uwsgi em cada arquivo separado contém a configuração para cada instância do servidor uWSGI.
Agora a pasta / srv / www. Esta pasta contém subpastas, cada uma para cada usuário SFTP, que tem chrootdir nela. Cada uma dessas pastas contém a subpasta www, que contém os projetos Django e RoR.
Agora, eu tenho minhas primeiras perguntas:
Agora, usuários e grupos. Eu criei para o servidor precisa dos seguintes usuários e grupos:
uid=1003(www) gid=1003(www) grupy=1003(www)
uid=1005(Site1) gid=1004(sftponly) grupy=1004(sftponly)
uid=1006(Site1-www) gid=100(users) grupy=100(users),1003(www)
O usuário www é usado pelo Nginx.
O Site do usuário1 é usado somente para acesso ao SFTP para o cliente, tem diretórios chroot em / srv / www / USER_NAME e / www dir no arquivo passwd.
User Site1-www é um usuário "técnico", usado apenas por servidores e scripts que trabalham para esse usuário, por exemplo. uWSGI.
Próximas perguntas:
Configuração do servidor Nginx. Eu não colo tudo da configuração porque isso não é perguntas sobre se o servidor está bem configurado, mas sobre sua segurança.
A configuração principal está na pasta / etc / nginx, não faço nenhuma alteração de privilégios a esses arquivos. Server funciona em www uid e group.
A configuração dos servidores virtuais é no catálogo / srv / nginx, que é totalmente importado (inclua /srv/nginx/*.conf;).
Os logs principais do servidor estão na pasta / var / log / nginx, e os logs dos usuários estarão na pasta / srv / www / USER_NAME / log.
Agora há o fim. Configuração do uWSGI:
A configuração de cada instância, uma ou mais para cada cliente (é o caso de vários aplicativos serem usados nas pastas /srv/www/USER_NAME/www/App1..App2), está na pasta / srv / uwsgi. Todas as instâncias do uWSGI funcionam com uid = USER_NAME-www e gid = www.
Na configuração do uWSGI, tenho os seguintes caminhos de python:
chdir: /srv/www/Site1/www
pythonpath: /srv/www/Site/www
E isso é tudo. Obrigado por ler e agradeço qualquer resposta. Eu sei que meu inglês não é perfeito, mas eu espero que tudo isso tenha sido escrito de forma clara e compreensível. Eu respondo por todas as perguntas nos comentários, então se houver alguma imprecisão para que eu possa explicar imediatamente:)