Страница 1 из 1
nginx
Добавлено: 2007-03-21 17:45:48
selinia
скучно =(
давай-те расвеемся темой о nginx, как известно, лучшем в своём роде web сервером..
собственно, надавняя проблема с апачем, когда при закачке больших файлов он просто виснул, пришлось все файлы положить на ftp, и занятся обдумыванием ситуации..
ну это всё предыстория, если кто-либо работал уже с nginx, то не могли бы вы сказать, можно ли сделать так, чтобы:
http://domain.com - обрабатывался апачем
http://dl.domain.com - nginx
это всё при условии, что всё на 80 порту.. ибо, если я запускаю nginx на 80 порту, он непускается (порт занят)..
Добавлено: 2007-03-21 18:38:44
dikens3
Это не 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/
И далее по ссылкам из статьи.
Оф. сайт тоже рулит.
Добавлено: 2007-03-21 19:09:36
selinia
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
Добавлено: 2007-03-21 19:25:27
dikens3
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, пусть другие посмотрят, может что умное подскажут.
Добавлено: 2007-03-21 19:56:55
selinia
за меня ничего писать ненадо, я непонимаю принцип..
если я обращаюсь на domain.ru меня кидает на 8080 порт, а не на 80 (ибо апач перевешивается по вашему конфигу), что имхо не хорошо..
надо, чтобы апач был на 80 порту, а nginx отдавал файлы на сервере, только и всего..
и жалательно, чтобы отдавал по 80 порту..
Добавлено: 2007-03-22 11:30:53
dikens3
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
Добавлено: 2007-03-22 15:29:32
selinia
поставила так:
Код: Выделить всё
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;
Добавлено: 2007-03-22 15:32:58
dikens3
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;
Путь к папке, где эти файлы собственно и лежат. :-)
Добавлено: 2007-03-22 15:36:49
selinia
а если файлы лежат в разных директориях ?
вообще непонятно, файлы неуказанные тут:
location ~* ^.+\.(zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|iso)$
качает nginx, а указанные некачает, как так ?
Добавлено: 2007-03-22 16:21:59
dikens3
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) должны находится в одном месте.
Добавлено: 2007-03-22 16:56:21
selinia
спасибо