The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"почему nginx запускаеться и от root и от www"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Др. сетевые сервисы / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"почему nginx запускаеться и от root и от www"  +/
Сообщение от netc email(ok) on 17-Авг-09, 10:36 
система
FreeBSD 7.1-RELEASE #1: Wed Apr 15 13:27:56 MSD 2009
root@my.local:/usr/obj/usr/src/sys/GENERIC-with-pf-altq-with-netgraph  i386

зашел в порт nginx /usr/ports/www/nginx

сказал make install , ругаетться на www юзвера.

вообще удалил старого, создал нового, вроде поставилось без проблем
естественно скопировались скрипты в /usr/local/etc/rc.d

из /usr/local/etc/rc.d/nginx start запускаеться

прописываем его в /etc/rc.conf

cat /etc/rc.conf


nginx_enable="YES"

cat /usr/local/etc/rc.d/nginx


#!/bin/sh
# $FreeBSD: ports/www/nginx/files/nginx.sh.in,v 1.7 2009/07/15 16:56:09 dougb Exp $

# PROVIDE: nginx
# REQUIRE: LOGIN cleanvar
# KEYWORD: shutdown

#
# Add the following lines to /etc/rc.conf to enable nginx:
# nginx_enable (bool):          Set to "NO" by default.
#                               Set it to "YES" to enable nginx
# nginx_profiles (str):         Set to "" by default.
#                               Define your profiles here.
# nginxlimits_enable (bool):    Set to "NO" by default.
#                               Set it to yes to run `limits $limits_args`
#                               just before nginx starts.
# nginx_flags (str):            Set to "" by default.
#                               Extra flags passed to start command.
# nginxlimits_args (str):       Default to "-e -U www"
#                               Arguments of pre-start limits run.

. /etc/rc.subr

name="nginx"
rcvar=`set_rcvar`

start_precmd="nginx_precmd"
restart_precmd="nginx_checkconfig"
reload_precmd="nginx_checkconfig"
configtest_cmd="nginx_checkconfig"
gracefulstop_cmd="nginx_gracefulstop"
upgrade_precmd="nginx_checkconfig"
upgrade_cmd="nginx_upgrade"
command="/usr/local/sbin/nginx"
_pidprefix="/var/run/nginx"
pidfile="${_pidprefix}.pid"
required_files=/usr/local/etc/nginx/nginx.conf

[ -z "$nginx_enable" ]          && nginx_enable="NO"
[ -z "$nginxlimits_enable" ]    && nginxlimits_enable="NO"
[ -z "$nginxlimits_args" ]      && nginxlimits_args="-e"
[ -z "$nginxlimits_args" ]      && nginxlimits_args="-e -U www"

load_rc_config $name

if [ -n "$2" ]; then
        profile="$2"
        if [ "x${nginx_profiles}" != "x" ]; then
                pidfile="${_pidprefix}.${profile}.pid"
                eval nginx_configfile="\${nginx_${profile}_configfile:-}"
                if [ "x${nginx_configfile}" = "x" ]; then
                        echo "You must define a configuration file (nginx_${profile}_configfile)"
                        exit 1
                fi
                required_files="${nginx_configfile}"
                eval nginx_enable="\${nginx_${profile}_enable:-${nginx_enable}}"
                eval nginx_flags="\${nginx_${profile}_flags:-${nginx_flags}}"
                eval nginxlimits_enable="\${nginxlimits_${profile}_enable:-${nginxlimits_enable}}"
                eval nginxlimits_args="\${nginxlimits_${profile}_args:-${nginxlimits_args}}"
                nginx_flags="-c ${nginx_configfile} -g \"pid ${pidfile};\" ${nginx_flags}"
        else
                echo "$0: extra argument ignored"
        fi
else
        if [ "x${nginx_profiles}" != "x" -a "x$1" != "x" ]; then
                for profile in ${nginx_profiles}; do
                        echo "===> nginx profile: ${profile}"
                        /usr/local/etc/rc.d/nginx $1 ${profile}
                        retcode="$?"
                        if [ "0${retcode}" -ne 0 ]; then
                                failed="${profile} (${retcode}) ${failed:-}"
                        else
                                success="${profile} ${success:-}"
                        fi
                done
                exit 0
        fi
fi

nginx_checkconfig()
{
        echo "Performing sanity check on nginx configuration:"
        eval ${command} ${nginx_flags} -t
}

nginx_gracefulstop()
{
        echo "Performing a graceful stop:"
        sig_stop="QUIT"
        run_rc_command ${rc_prefix}stop $rc_extra_args || return 1
}

nginx_upgrade()
{
        echo "Upgrading nginx binary:"

        reload_precmd=""
        sig_reload="USR2"
        run_rc_command ${rc_prefix}reload $rc_extra_args || return 1

        sleep 1

        echo "Stopping old binary:"

        sig_reload="QUIT"
        pidfile="$pidfile.oldbin"
        run_rc_command ${rc_prefix}reload $rc_extra_args || return 1
}

nginx_precmd()
{
        nginx_checkconfig

        if checkyesno nginxlimits_enable
        then
                eval `/usr/bin/limits ${nginxlimits_args}` 2>/dev/null
        else
                return 0
        fi
}

extra_commands="reload configtest upgrade gracefulstop"
run_rc_command "$1"


итак после перезапуска системы видим:


USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     sshd       1027  2  tcp4   192.168.0.5:22        192.168.0.102:64462
root     sshd       1027  3  tcp4   192.168.0.5:22        192.168.0.102:64462
root     sshd       1027  4  tcp4   192.168.0.5:22        192.168.0.102:64462
root     inetd      990   5  tcp4   *:21                  *:*
root     inetd      990   6  tcp4   *:22                  *:*
root     sendmail   954   4  tcp4   127.0.0.1:25          *:*
www      nginx      939   7  tcp4   *:80                  *:*
root     nginx      937   7  tcp4   *:80                  *:*
pgsql    postgres   926   4  tcp4   *:5432                *:*
root     syslogd    796   7  udp4   *:514                 *:*

nginx запущен под двумя юзерами www и root
1. правильно ли это?
2. можно ли чтобы он был запущен только от www?
3. почему два процесса, и сколько вообще должно быть?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "почему nginx запускаеться и от root и от www"  +/
Сообщение от Michael (??) on 17-Авг-09, 11:04 

>nginx запущен под двумя юзерами www и root
>1. правильно ли это?
>2. можно ли чтобы он был запущен только от www?
>3. почему два процесса, и сколько вообще должно быть?

1. правильно на все 100.
2. можно, но тогда придется прослушивать какой-то из старших портов > 1024 и возможны некоторые неожиданности
3. Процессов не два, а 1 главный + несколько рабочих

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "почему nginx запускаеться и от root и от www"  +/
Сообщение от netc email(ok) on 17-Авг-09, 12:18 
>1. правильно на все 100.

так под каким все таки юзером nginx отдает контент запрашиваемым

>2. можно, но тогда придется прослушивать какой-то из старших портов > 1024 и возможны некоторые неожиданности

а где про это почитать, если стоит вообще на это заморачиваться, т.е. будет или секьюрность повышена

>3. Процессов не два, а 1 главный + несколько рабочих

какой тогда процесса главный, какой рабочий.

они все отдают контент, или только рабочие ?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "почему nginx запускаеться и от root и от www"  +/
Сообщение от Michael (??) on 17-Авг-09, 13:08 
>[оверквотинг удален]
>>2. можно, но тогда придется прослушивать какой-то из старших портов > 1024 и возможны некоторые неожиданности
>
>а где про это почитать, если стоит вообще на это заморачиваться, т.е.
>будет или секьюрность повышена
>
>>3. Процессов не два, а 1 главный + несколько рабочих
>
>какой тогда процесса главный, какой рабочий.
>
>они все отдают контент, или только рабочие ?

если кратко, главный процесс прослушивает 80 порт, а клиентские запросы обрабатывают дочерние - рабочие

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "почему nginx запускаеться и от root и от www"  +/
Сообщение от netc email(ok) on 17-Авг-09, 13:16 
>[оверквотинг удален]
>>будет или секьюрность повышена
>>
>>>3. Процессов не два, а 1 главный + несколько рабочих
>>
>>какой тогда процесса главный, какой рабочий.
>>
>>они все отдают контент, или только рабочие ?
>
>если кратко, главный процесс прослушивает 80 порт, а клиентские запросы обрабатывают дочерние
>- рабочие

спасибо большое! теперь все понял!

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "почему nginx запускаеться и от root и от www"  +/
Сообщение от Nex email on 05-Июн-17, 02:58 
>[оверквотинг удален]
>>а где про это почитать, если стоит вообще на это заморачиваться, т.е.
>>будет или секьюрность повышена
>>
>>>3. Процессов не два, а 1 главный + несколько рабочих
>>
>>какой тогда процесса главный, какой рабочий.
>>
>>они все отдают контент, или только рабочие ?
> если кратко, главный процесс прослушивает 80 порт, а клиентские запросы обрабатывают дочерние
> - рабочие

Благодарю, мне тоже очень помогли с пониманием!

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру