Хорошо, вчера я наконец-то получил серверы nginx и uWSGI, работающие на моем компьютере. Файлы конфигурации Nginx и uWSGI, новые пользователи, группы и их привилегии, а также chrootdir для SSH я настроил на основе знаний, доступных в Интернете. К сожалению, я не слишком доверяю ему, поэтому я хотел спросить системных администраторов, не совершил ли я где-то огромную ошибку, из-за чего однажды я попрощаюсь с сервером.
Для HTTP-сервера я использую только каталог / srv, структура и привилегии которого следующие:
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--
Папка / srv / nginx в каждом отдельном файле содержит конфигурацию для нового виртуального сервера.
Папка / srv / sockets содержит только файлы сокетов, которые используются uWSGI и nginx, пример файла с привилегиями уже существует.
Папка / srv / uwsgi в каждом отдельном файле содержит конфигурацию для каждого экземпляра сервера uWSGI.
Теперь папка / srv / www. Эта папка содержит подпапки, каждая для каждого пользователя SFTP, в которых есть chrootdir. Каждая из этих папок содержит подпапку www, в которой находятся проекты Django и RoR.
Итак, у меня есть первые вопросы:
Теперь о пользователях и группах. Я создал для сервера потребности следующих пользователей и групп:
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)
Пользовательский www используется Nginx.
Пользователь Site1 используется только для доступа по протоколу SFTP для клиента, каталог chroot с штриховкой в / srv / www / USER_NAME и / www в файле passwd.
Пользователь Site1-www является «техническим» пользователем, используется только серверами и скриптами, работающими для этого пользователя, например. uWSGI.
Следующие вопросы:
Конфигурация сервера Nginx. Я не вставляю всю конфигурацию, потому что это вопрос не о том, правильно ли настроен сервер, а о его безопасности.
Основная конфигурация находится в папке / etc / nginx, я не вношу никаких изменений в эти файлы. Сервер работает по www uid и группе.
Конфигурация виртуальных серверов находится в каталоге / srv / nginx, который полностью импортирован (включая /srv/nginx/*.conf;).
Основные журналы сервера находятся в папке / var / log / nginx, а журналы пользователей будут в папке / srv / www / USER_NAME / log.
Вот и конец. Конфигурация uWSGI:
Конфигурация каждого экземпляра, один или несколько для каждого клиента (в случае использования нескольких приложений, используются папки /srv/www/USER_NAME/www/App1..App2), находится в папке / srv / uwsgi. Все экземпляры uWSGI работают с uid = USER_NAME-www и gid = www.
В конфигурации uWSGI у меня есть следующие пути python:
chdir: /srv/www/Site1/www
pythonpath: /srv/www/Site/www
Вот и все. Спасибо за чтение, и я очень ценю любой ответ. Я знаю, что мой английский не совсем идеален, но надеюсь, что все написано ясно и понятно. На все вопросы отвечаю в комментариях, так что если есть неточности, сразу могу объяснить :)