Страница 1 из 1

nginx+apache22

Добавлено: 2009-05-03 11:51:13
server801
нашел статью,http://adw0rd.ru/2009/nginx-and-apache-install/,поставил syscp,вроде все нормально -стили не отображаются.в логах вот что

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

2009/05/03 12:36:16 [error] 6027#0: *1 open() "/usr/local/www/apache22/data/syscp/images/login.gif" failed (2: No such file or directory), client: 192.168.1.10, server: srv.bsd, request: "GET /syscp/images/login.gif HTTP/1.1", host: "192.168.1.3", referrer: "http://192.168.1.3/syscp/index.php?"
конфиг nginx

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

cat nginx.conf
# пользователь и группа от которого запускается процесс
user  www www;

# 3 рабочих процесса
worker_processes  3;

# Лог для ошибок
error_log  logs/error.log;

events {

    # максимум рабочих соединений
    worker_connections  1024;

    # Метод обработки соединений
    # kqueue ? эффективный метод, используемый во FreeBSD
    # Подробнее http://sysoev.ru/nginx/docs/events.html
    use kqueue;
}

http {

    # Подключаем таблицу mime
    include       mime.types;

    # mime-тип по умолчанию
    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;

    # Директива задаёт таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера
    keepalive_timeout      2m;

    # Директива разрешает или запрещает использовать sendfile()
    sendfile        on;

    # Директива разрешает или запрещает использовать опции TCP_NOPUSH во FreeBSD
    # Подробнее http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#keepalive_timeout
    #tcp_nopush     on;

    # Директива задаёт размер буфера для чтения заголовка запроса клиента
    #client_header_buffer_size    1k;

    # Директива задаёт максимальное число и размер буферов для чтения большого заголовка запроса клиента
    #large_client_header_buffers  4 4k;

    # Модуль позволяет описывать группы серверов, которые могут использоваться
    # в директивах proxy_pass и fastcgi_pass.
    upstream backend {
        # Директива задаёт имя и параметры сервера. Обратите внимание, мы будем
        # использовать имя "backend" в директиве proxy_pass
        server 127.0.0.1:88;
    }

    server {

        # Слушать 80 порт
        listen       80;

        # Использовать следующие хосты
#        server_name  pyha.ru www.pyha.ru;

        # Кодировка
        #charset koi8-r;

        # Лог доступа для конкретного виртуального хоста
        #access_log  logs/host.access.log  main;

        # Максимальный размер тела запроса клиента
        client_max_body_size 101M;

                # Разруливаем статику и динамку, смотрите описание ниже в этой статье!
                location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
                        root /usr/local/www/apache22/data/;
                }

                location ~ /\.ht {
                        deny  all;
                }

                location / {
                        proxy_pass http://backend/;
                        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;
                }

        # Адрес страницы 404-ой ошибки, далее все ошибки по аналогии
        #error_page  404              /404.html;

        # Аналогично 404, только при этом назначается псевдоним 50x.html для всех
        # 50x-тых ошибок и далее перенаправляется все на "root"
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            # корневая директория
            root   /usr/local/www/nginx-dist;
        }
    }
}
что я неправильно сделал?

Re: nginx+apache22

Добавлено: 2009-05-03 13:02:01
LMik
А чего не понятного? пишут же белым по черному

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

/usr/local/www/apache22/data/syscp/images/login.gif" failed (2: No such file or directory)
Есть такой файл разве?

Re: nginx+apache22

Добавлено: 2009-05-03 13:03:41
server801
есть конечно

Re: nginx+apache22

Добавлено: 2009-05-03 13:10:10
LMik
server801 писал(а):есть конечно
No such file or directory
нету говорят.

Re: nginx+apache22

Добавлено: 2009-05-04 10:30:43
Sadok123
Прав не хватает?

Re: nginx+apache22

Добавлено: 2009-05-04 22:58:47
---nebo---
ты пытаешся доступиться к /usr/local/www/apache22/data/syscp/images/login.gif
этот запрос идет к nginx, а эго файлы в /usr/local/www/nginx-dist
так как файл gif, то nginx пытается передать запрос апачу, обратиться к апачу не может

мне кажеться у тебя проблема в директиве
upstream backend {
server 127.0.0.1:88;
}

у меня в разделе просто описано
server{
location / {
root /usr/local/www/apache22/data;
index index.html index.htm;
proxy_pass http://192.168.1.13:81/; #вместо proxy_pass http://backend/;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
}


попробуй сделать так, если все равно не получится, могу кинуть рабочие конфини nginx'а

Re: nginx+apache22

Добавлено: 2009-05-04 23:12:32
server801
вот это было бы лучше.почти разобрался,но пока не совсем правда вьехал что и как,после апача трудно привыкнуть...
если можно ,выложите конфиги,и комменты к использованию,точность не помешает :smile: я буду очень благодарен!!! :Bravo: и есть ли смысл вообще не использовать апач?

Re: nginx+apache22

Добавлено: 2009-05-05 6:12:28
LMik
server801 писал(а):вот это было бы лучше.почти разобрался,но пока не совсем правда вьехал что и как,после апача трудно привыкнуть...
если можно ,выложите конфиги,и комменты к использованию,точность не помешает :smile: я буду очень благодарен!!! :Bravo: и есть ли смысл вообще не использовать апач?
Народ деградирует совсем, куда уж проще-то?
http://sysoev.ru/nginx/docs/

Re: nginx+apache22

Добавлено: 2009-05-05 6:14:34
LMik

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

ls -l /usr/local/www/apache22/data/syscp/images/

Re: nginx+apache22

Добавлено: 2009-05-05 7:20:46
server801
не надо рассказывать мне про деградацию!зачем тогда этот форум когда есть хендбук и маны?речь была вообще не об этом.прекрасно все я видел на http://sysoev.ru/nginx/docs/,но читайте внимательнее мой пост!

Re: nginx+apache22

Добавлено: 2009-05-05 8:52:07
LMik
server801 писал(а):не надо рассказывать мне про деградацию!зачем тогда этот форум когда есть хендбук и маны?речь была вообще не об этом.прекрасно все я видел на http://sysoev.ru/nginx/docs/,но читайте внимательнее мой пост!
У вас впорос что не правильно сделали.
Ответ - доку не читали, конфиг не поняли.
Решение - прочитать доку, вдуматься в каждую строку конфига.

ПС

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

ls -l /usr/local/www/apache22/data/syscp/images/

Re: nginx+apache22

Добавлено: 2009-05-05 13:52:45
---nebo---
Смысл использовать связку nginx+apache22 есть, когда веб сервер достаточно загружен(60-70%). У меня, конечно, до таких загрузов еще не доходило, но читал форумы и посты людей, то говорят что такой подход позволяет действительно неплохо разгрузить апач и добиться большей производительности сервака. Лично себе сделал так только ради того, что бы попробовать как оно.

Начальный конфиг nginx'а для работы с апачам достаточно простой, ну тоесть для того что бы они оба завелись, а вот оптимизация, заточка для производительности - это уже дело опыта, лично ковыряния, метода тыка и еще чета :smile:

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

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

#user  nobody;
worker_processes  1;

#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;
}


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  /var/log/nginx-access.log ;# main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    #
    server {
        listen       192.168.1.13:80;
        server_name  192.168.1.13;

        #charset koi8-r;

        access_log  logs/host.access.log  main;

        location / {
            root   /usr/local/www/apache22/data;
            index  index.html index.htm;
	    proxy_pass http://192.168.1.13:81/;# мой апач
            
	    proxy_set_header Host $host;
 	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # это для того, что бы в логах апача висели айпишник юзверей, 
а не один айпишник nginx'а, потому что по сути один только он обращается к апачу
	    
	    }
	 location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ {
	 root /usr/local/www/apache22/data;
	 }

        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 
        #
        location ~ \.php$ {
            proxy_pass http://192.168.1.13:81;
        }


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


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}


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

Re: nginx+apache22

Добавлено: 2009-05-05 22:28:33
server801

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

^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$ {
вот на эту строчку надо было поменять мне,в начале символы выносили моск.доделаю,приведу полный конфиг