nginx

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

nginx

Непрочитанное сообщение selinia » 2007-03-21 17:45:48

скучно =(
давай-те расвеемся темой о nginx, как известно, лучшем в своём роде web сервером..

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

ну это всё предыстория, если кто-либо работал уже с nginx, то не могли бы вы сказать, можно ли сделать так, чтобы:

http://domain.com - обрабатывался апачем
http://dl.domain.com - nginx

это всё при условии, что всё на 80 порту.. ибо, если я запускаю nginx на 80 порту, он непускается (порт занят)..

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-21 18:38:44

Это не WEB-Сервер. Я только экспериментировал с ним.
это всё при условии, что всё на 80 порту.. ибо, если я запускаю nginx на 80 порту, он непускается (порт занят)..
Nginx вешается на 80 порт, apache на любой другой.
ну это всё предыстория, если кто-либо работал уже с nginx, то не могли бы вы сказать, можно ли сделать так, чтобы:
100% может, для него это семечки.

nginx.conf
user www www;
worker_processes 20;

error_log /var/log/nginx-error.log debug;

pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

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

log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $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;
tcp_nodelay on;

server {
listen 80; (порт слушает nginx)
server_name вот тут твои данные;

access_log /var/log/nginx-host.access.log main;

# Main location
location / {
proxy_pass http://192.168.2.9:8080/; - Здесь висит реальный Apache
proxy_redirect off;

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

client_max_body_size 10m;
client_body_buffer_size 128k;

proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}

# location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
# root /spool/www/members_ng;
# }


}
}
Здесь можно почитать:
http://blog.kovyrin.net/2006/05/18/ngin ... y/lang/ru/
И далее по ссылкам из статьи.
Оф. сайт тоже рулит.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

Непрочитанное сообщение selinia » 2007-03-21 19:09:36

1) спасибо
2) я тоже из nino =)
3) на том сайте была, и на оф сайте тоже, непомогло =)
4) тоесть, я вешаю апаче на порт 8080, указываю в конфиге nginx
proxy_pass http://192.168.2.9:8080/
и всё работает ?
5) а если я апач оставлю на 80, а nginx на 8080 повешу ?, суть дела не слишком изменится ?
6) у меня http://domain.ru, надо, чтобы http://dl.domain.ru был на nginx

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-21 19:25:27

selinia писал(а):1) спасибо
2) я тоже из nino =)
3) на том сайте была, и на оф сайте тоже, непомогло =)
4) тоесть, я вешаю апаче на порт 8080, указываю в конфиге nginx
proxy_pass http://192.168.2.9:8080/
и всё работает ?
192.168.2.9
5) а если я апач оставлю на 80, а nginx на 8080 повешу ?, суть дела не слишком изменится ?
6) у меня http://domain.ru, надо, чтобы http://dl.domain.ru был на nginx
1. Незачто.
2. Я за Вас рад. Серьёзно. :-)
3. Вот это очень странно. (Там есть картинка, как это работает, повнимательнее смотрите)
4. 192.168.2.9:8080 - Это IP и порт, который слушает apache, у меня был тут. У Вас может быть и другой IP:ПОРТ
5. Смотря как у Вас устроена сеть. Если пробрасывать 80 на 8080 порт, тогда нет, не изменится. Но важно помнить, что по умолчанию, если набрать в Intenet Explorer http://www.rambler.ru, то запрос идёт на IP:80. Порт 80. Там дальше зависит от действий Ramblera.
6. Ну девушка, надо так надо. Мне написать за вас? Выложите конфиг nginx, пусть другие посмотрят, может что умное подскажут.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

Непрочитанное сообщение selinia » 2007-03-21 19:56:55

за меня ничего писать ненадо, я непонимаю принцип..

если я обращаюсь на domain.ru меня кидает на 8080 порт, а не на 80 (ибо апач перевешивается по вашему конфигу), что имхо не хорошо..

надо, чтобы апач был на 80 порту, а nginx отдавал файлы на сервере, только и всего..
и жалательно, чтобы отдавал по 80 порту..

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-22 11:30:53

selinia писал(а):надо, чтобы апач был на 80 порту, а nginx отдавал файлы на сервере, только и всего..и жалательно, чтобы отдавал по 80 порту..
1. Вешаем nginx на 80 порт
2. Вешаем apache IP1:8080
3. Другой apache (или настраиваем virtual host) IP2:8080

Как работает?
Приходит любой запрос.
1. nginx перехватывает имя домена и отправляет на нужный apache (На IP1:8080 или IP2:8080, в зависимости от домена)
2. Все картинки обрабатывает nginx, не передавая ничего apache
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

Непрочитанное сообщение selinia » 2007-03-22 15:29:32

поставила так:

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

user  www www;
worker_processes  2;

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

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

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

    log_format  main  '$remote_addr - $remote_user [$time_local] $status '
    '"$request" $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;
    tcp_nodelay    on;

server {
    listen       80;
    server_name  fixed-guild.ru  www.fixed-guild.ru;

    access_log  /var/log/dl.access.log  main;

# Main location
location / {
    proxy_pass         http://89.108.89.11:8080/;
    proxy_redirect     off;

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

    client_body_buffer_size    128k;
    proxy_connect_timeout      90;
    proxy_send_timeout         90;

    proxy_buffer_size          4k;
    proxy_buffers              4 32k;

    proxy_temp_file_write_size 64k;
}

# Static files location
    location ~* ^.+\.(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso)$ {
    root   /spool/www/members_ng;
    }

  }
апач на 8080, всё работает, только 2 вопроса:
что означает это:
location ~* ^.+\.(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso)$ {

я так понимаю, это то, что обрабатывает nginx, тогда почему, если прописать:
jpg|jpeg|gif|png|ico|css
картинки непоказываются ? если дописать iso, то iso файлы нескачиваются ?

и второй вопрос, что означает:
root /spool/www/members_ng;

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-22 15:32:58

selinia писал(а):location ~* ^.+\.(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso)$
Описываем расширения файлов.
selinia писал(а):и второй вопрос, что означает:
root /spool/www/members_ng;
Путь к папке, где эти файлы собственно и лежат. :-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

Непрочитанное сообщение selinia » 2007-03-22 15:36:49

а если файлы лежат в разных директориях ?
вообще непонятно, файлы неуказанные тут:
location ~* ^.+\.(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso)$

качает nginx, а указанные некачает, как так ?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-22 16:21:59

selinia писал(а):а если файлы лежат в разных директориях ?
вообще непонятно, файлы неуказанные тут:
location ~* ^.+\.(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso)$

качает nginx, а указанные некачает, как так ?
Предположим запрос на файл film.avi
1. ngnix смотрит, есть ли у него обработка расширения .avi?
2. Если есть отдаёт файл, а если нету, пересылает на apache, а там пусть разбирается apache.
Совершенно незачем apache использовать для раздачи статики.
а если файлы лежат в разных директориях ?
Все файлы, с установленным расширением(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso) должны находится в одном месте.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

selinia
ефрейтор
Сообщения: 53
Зарегистрирован: 2007-02-20 0:06:30

Непрочитанное сообщение selinia » 2007-03-22 16:56:21

спасибо