Решено: От кого пускать веб-сервер?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Devider
Сообщения: 476
ОС: GNU/Linux

Решено: От кого пускать веб-сервер?

Сообщение Devider »

Надо поставить nginx. Везде описывается его установка с последующим запуском с правами рута. Что-то я засомневался, насколько это целесообразно? Зачем ему такие полномочия, не лучше ли создать ограниченного пользователя для этого?
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Решено: От кого пускать веб-сервер?

Сообщение SLEDopit »

конечно нецелесообразно.

Код: Выделить всё

 $ grep user /etc/nginx/nginx.conf
user nginx-user;
и все отлично.
а апач по дефолту идет от нерутового пользователя.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Devider
Сообщения: 476
ОС: GNU/Linux

Re: Решено: От кого пускать веб-сервер?

Сообщение Devider »

А для полноты картины..
# su -s /bin/bash www-data
$radiant /www/radiant/zdrava/cms

последняя комманда аналогична rails new cms - создание базового приложения на рельсах. Все отрабатывает, все ОК.
Запускаю
www-data@server:/www/radiant/zdrava/cms$ script/server -e production
- работает.
Запускаю nginx, ругается:
2011/01/22 17:47:50 [error] 10325#0: *7 directory index of "/www/radiant/zdrava/cms/" is forbidden, client: 192.168.1.4, server: , request: "GET / HTTP/1.1", host: "192.168.1.3"

Каких еще ему прав надо?
Настраивал так:

Код: Выделить всё

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {

    access_log    /var/log/nginx/access.log;

    sendfile        on;

    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;

    passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.2;
    passenger_ruby /usr/bin/ruby1.8;
    passenger_max_pool_size 10;

    server {
    listen *:80;
    root /www/radiant/zdrava/cms/;
        passenger_enabled on;
    charset on;
        rails_env production;
    }

}


upd:
nginx собирал passenger-ом, passenger-install-nginx-module. Правильно ли я понимаю, что "штатный" дебиановский nginx собран без его поддержки? Можно ли его как-то прикрутить? Мне больше нравится пользоваться дистрибутивными пакетами.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: От кого пускать веб-сервер?

Сообщение sash-kan »

Devider писал(а):
22.01.2011 17:52
Запускаю nginx, ругается:
от чьего имени запускаете?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Devider
Сообщения: 476
ОС: GNU/Linux

Re: Решено: От кого пускать веб-сервер?

Сообщение Devider »

sash-kan писал(а):
22.01.2011 18:19
Devider писал(а):
22.01.2011 17:52
Запускаю nginx, ругается:
от чьего имени запускаете?

От рута
# /etc/init.d/nginx start
Starting nginx: nginx.
#

Скрипт штатный, сам nginx - ссылка на то что собрал пассенджер.
# ls -la /usr/sbin/nginx
lrwxrwxrwx 1 root root 21 Янв 22 15:27 /usr/sbin/nginx -> /opt/nginx/sbin/nginx
Спасибо сказали:
Аватара пользователя
Devider
Сообщения: 476
ОС: GNU/Linux

Re: Решено: От кого пускать веб-сервер?

Сообщение Devider »

Тупанул. в root /www/radiant/zdrava/cms/ путь надо указывать до паблика: root /www/radiant/zdrava/cms/public;
Всем спасибо.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: От кого пускать веб-сервер?

Сообщение Ленивая Бестолочь »

у nginx-а всё равно один процесс будет от рута.
который мастер.

Код: Выделить всё

suigintou:~# grep user /etc/nginx/nginx.conf
user www-data;
suigintou:~# ps -ef| grep nginx
root     16097 16076  0 09:14 pts/0    00:00:00 grep nginx
root     27128     1  0  2010 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data 27129 27128  0  2010 ?        00:09:33 nginx: worker process
www-data 27130 27128  0  2010 ?        00:00:00 nginx: cache manager process
suigintou:~#

так что, если параноитесь - задумайтесь над расширенной системой прав.
в очередной раз скажу, что очень рекомендую tomoyo.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали: