Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > nginx+httpd+php-fpm


Автор: mark2009 11.11.2012, 21:54
Всем добрый вечер!

Ставлю следующую связку на VDS для серьёзного проекта: nginx+apache+php-fpm.
Всё по отдельности поставил. Nginx на 80 порту, апач на 81. Пытаюсь связать:

Код

user  no
body;
worker_processes  3;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {
    worker_connections  1024;
#    use kqueue;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;
    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;
    keepalive_timeout      2m;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    #keepalive_timeout  65;

    gzip  off;

    upstream backend {
        server 127.0.0.1:81;
    }
server {
        listen       80;
        server_name  testnwd.ru;
        root /soft/nginx/html/testnwd.ru;
        #charset koi8-r;

        access_log  logs/testnwd.ru.access.log  main;
        error_log logs/testnwd.ru.error.log;
        client_max_body_size 101M;

        location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$  {
            root   /soft/nginx/html/testnwd.ru;
            index  index.html index.htm index.php;
        }
        location ~ /\.ht {
                        deny  all;
                }

        location / {
                        proxy_pass http://127.0.0.1:81/;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $remote_addr;

                        proxy_connect_timeout 120;
                        proxy_send_timeout    120;
                        proxy_read_timeout    180;
                }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }
# proxy the PHP scripts to Apache listening on 127.0.0.1:80

        location ~ \.php$ {
            proxy_pass   http://127.0.0.1:81;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /soft/nginx/html/testnwd.ru;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }



Тут ничего непонятно. Директории все правильные, НО:

1) Файл index.php = 404 ошибка. Где он должет лежать? У меня он в папке nginx. Я так понимаю, что на апач просто проксируются запросы, а все файлы в nginx

2) Представленная настройка вообще верная? используется php-fpm

Автор: goga075 11.11.2012, 23:09
php-fpm тут не причем.

Данная связка работает с nginx+httpd. Файлы хранятся в директориях httpd

nginx не умеет интерпретировать php скрипты. И предназначен для отдачи статической информации. То-есть картинок и тому подобного. А так-же скриптов который интерпретировал httpd.

Автор: mark2009 12.11.2012, 05:44
Ничего вообще не понимаю!

К примеру виртуальный сервер test.domain.ru
В nginx: /soft/nginx/html/test.domain.ru
В httpd: /soft/httpd/htdocs/test.domain.ru/www

1: Где будут храниться файлы?
2: Где это всё прописывать?

Я правильно понимаю что в nginx прописывать структуру каталогов httpd?

Автор: goga075 12.11.2012, 20:19
1. Если вы не знаете как работает эта система, настоятельно не рекомендую кидаться сразу в огонь! По незнанки сервак у вас рухнет раза 2-3 в лучшем случае!! Причем в ненужный момент.

2. Дабы избежать ошибок советую поставить Apache (тот-же httpd). Работает из коробки, тока нужно подправить файл в.хостов. Этого будет вполне достаточна шоб на 4 пне обработать 10-20 запросов в секунду.
При нулевых знаниях Apache, его конфиг можно изучить за пару дней с практикой. Этого хватит для начала.

3. Если хотите создать нагрузо-устойчивый сервер устанавливаем "Oracle VM VirtualBox" и устраиваем там полигон. Все равно с первого раза не пройдет.

4. По вашим вопросам типа: 
Цитата

1: Где будут храниться файлы?
2: Где это всё прописывать?

ответит гугл.

Если вам горит, то советую нанять специалист, который сделает это вам быстрее.

Автор: mark2009 12.11.2012, 20:58
goga075

Цитата("goga075")

1. Если вы не знаете как работает эта система, настоятельно не рекомендую кидаться сразу в огонь!

Вот нет бы подсказать! зачем здесь этот форум? Не понимаю... только для того, чтобы

Цитата("goga075")

4. По вашим вопросам типа: 
Цитата("mark2009")

1: Где будут храниться файлы?
2: Где это всё прописывать?

ответит гугл

Если бы я хотел, я бы пошёл в гугл. 

Цитата("goga075")

Если вам горит, то советую нанять специалист, который сделает это вам быстрее. 

Во-первых здесь винительный падеж (нанять кого?). Во-вторых, либо специалиста либо специалистов.

А в-третьих знаете что есть признак знающего? Это когда человек не боится подсказать на форуме. А если на все мои вопросы ответит гугл, значит вы вообще по этому вопросу ничего не знаете. Лучше бы молчали, чем советовать начинающему бросить это дело. И, тем более, делать программу что

Цитата("goga075")

 По незнанки сервак у вас рухнет раза 2-3 в лучшем случае!! Причем в ненужный момент.

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

Мог бы здесь ещё сказать, но будет оффтопик. 
Посему прошу модераторов закрыть тему.

Автор: goga075 12.11.2012, 23:26
Цитата

Во-первых здесь винительный падеж (нанять кого?). Во-вторых, либо специалиста либо специалистов.

А в-третьих ...

У меня плохо с русским, а у вас как видно с математикой!

Ну а коль Вы такой умный. Флаг вам в руки.

И я не подсказываю. Я советую!
А подсказывает гугл.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)