Page 1 of 1

Пользовательский nginx.conf для нескольких сайтов на аккаунте. Как?

Posted: Fri Apr 15, 2016 10:55 am
by Agat
Конфигурация сервера. nginx+php-fpm
Обычно создаю для каждого сайта своего пользователя. И даже не задумывался о проблеме. Имею шаблон для пользовательского конфига nginx, который работает отлично. (нужна обработка ЧПУ в вордпресс)

Code: Select all

server {
    listen      xxx.xxx.xx.xx:80;
    server_name site.name www.site.name;
    root        /home/user/web/site.name/public_html;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/site.name.log combined;
    access_log  /var/log/nginx/domains/site.name.bytes bytes;
    error_log   /var/log/nginx/domains/site.name.error.log error;

        gzip on; # включаем сжатие gzip
        gzip_disable "msie6";
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

        location / {

if ($host ~* ^site\.name$) {
    rewrite ^(.*) http://www.site.name$1 permanent;
    break;
}


location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
}

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    127.0.0.1:9002;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;
}

А как оформить настройки для нескольких сайтов на юзере? Никак не соображу. У нас ведь разные server_name, root и пишутся эти настройки не под директорию с сайтом, а под директорию юзера. Подскажите.

Re: Пользовательский nginx.conf для нескольких сайтов на аккаунте. Как?

Posted: Fri Apr 15, 2016 12:01 pm
by skurudo
Не очень понятный вопрос.
На данный момент у пользователя один nginx.conf и в нем информация по доменам.
Конфигурация допускает наличие разных блоков server в одном конфиге, также как и с виртуальными хостами.

В дальнейшем мы думаем на тем, чтобы у каждого домена был свой конфиг.
Как мне кажется, это будет намного интереснее.

Re: Пользовательский nginx.conf для нескольких сайтов на аккаунте. Как?

Posted: Fri Apr 15, 2016 12:44 pm
by Agat
skurudo wrote:Не очень понятный вопрос.
Конфигурация допускает наличие разных блоков server в одном конфиге, также как и с виртуальными хостами.

В дальнейшем мы думаем на тем, чтобы у каждого домена был свой конфиг.
Как мне кажется, это будет намного интереснее.
Это ответ на мой непонятный вопрос. Спасибо. Я Этого не знал. Поэтому и вопрос непонятный. :)

Re: Пользовательский nginx.conf для нескольких сайтов на аккаунте. Как?

Posted: Fri Apr 15, 2016 1:46 pm
by skurudo
Agat wrote:Это ответ на мой непонятный вопрос. Спасибо. Я Этого не знал. Поэтому и вопрос непонятный. :)
А ну ок :)

Вот она такая конструкция:

Code: Select all

server {
    listen      *:443 ssl spdy;
    server_name zeira.ru www.zeira.ru;
...
    include /home/admin/conf/web/snginx.zeira.ru.conf*;
}
server {
    listen      *:443 ssl spdy;
    server_name erza.ru www.erza.ru;
....
    include /home/admin/conf/web/snginx.erza.ru.conf*;
}

Re: Пользовательский nginx.conf для нескольких сайтов на аккаунте. Как?

Posted: Fri Apr 15, 2016 6:11 pm
by Agat
skurudo wrote:
Agat wrote:Это ответ на мой непонятный вопрос. Спасибо. Я Этого не знал. Поэтому и вопрос непонятный. :)
А ну ок :)

Вот она такая конструкция:

Code: Select all

server {
    listen      *:443 ssl spdy;
    server_name zeira.ru www.zeira.ru;
...
    include /home/admin/conf/web/snginx.zeira.ru.conf*;
}
server {
    listen      *:443 ssl spdy;
    server_name erza.ru www.erza.ru;
....
    include /home/admin/conf/web/snginx.erza.ru.conf*;
}
упс. nginx ругается.
Я продублировал полностью свой блок, который описал в первом посте и вписал туда данные по своему второму сайту. То есть сейчас в пользоватетельском конфиге два идентичных блока, различающихся только данными по сайту и путями (site.name и site.ru)

Code: Select all

nginx -t
nginx: [warn] conflicting server name "site.ru" on    *:80, ignored
nginx: [warn] conflicting server name "www.site.ru" on    *:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Я чего то неправильно понял?
/home/admin/conf/web/snginx.erza.ru.conf*; и по этому пути у меня конфигураций никаких, кроме админской (nginx.conf) нет