Пятница, 29.03.2024, 16:06
# FreeBSD ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [167]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
 Каталог статей 
Главная » Статьи » Мои статьи

> Установка Nginx на Freebsd, Легкий прокси сервер> Установка Nginx на Freebsd, Легкий проксУстановка Nginx на Freebsd, Легкий прокси сервер
nginx [engine x] — это HTTP-сервер и почтовый прокси-сервер. Разработанный отличным спецом Игорем Сысоевым.На данный момент nginx работает на нескольких достаточно нагруженных сайтах под FreeBSD и Linux, в том числе на большинстве серверов Рамблера.

Некоторое время назад возникла ситуация, что на нашем сервере накопилось очень много статики, в основном это изображения, из-за отдачи которых аппач создавал столько процессов, что система просто висла.. Вынести на отдельный сервер картинки не представляется возможным, поэтому решил поставить nginx как проксирующий на этой же машине, для того чтобы быстрее отдавать статику не загружая аппач...
Конфига сервера: PentiumD, 160 SATA RAID, 2 gb RAM. FreeBsd 5.4

PS Руководство не претендует на высокую оценку.. Пишу не часто smile.gif

Установка nginx:
И так начнем, переходим в /usr/local
Код
# cd /usr/local

Создаем папку:
Код
# mkdir nginx

Переходим в нее /usr/local/nginx:
Код
# cd nginx

Загружаем дистрибутив:
Код
# wget http://www.sysoev.ru/nginx/nginx-0.6.29.tar.gz


Распаковываем:
Код
# tar zxf nginx-0.6.29.tar.gz


Переходим в директорию nginx-0.6.29:
Код
# cd nginx-0.6.29


Конфигурируем:
Код
# ./configure


Собираем и устанавливаем nginx:
Код
# make && make install && make clean


И так мы установили nginx в папку /usr/local/nginx/

Настройка nginx:

Так у меня много виртуальных доменов, решил вынести их в отдельные конфигурационные файлы. так удобней добавлять и позволяет настроить каждый под себя.
И так правим файл nginx.conf
Код
user  www www;
worker_processes 8;

error_log  logs/error.log info;

pid        logs/nginx.pid;

events {
    worker_connections  2000;
}

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  logs/access.log  main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
send_lowat 12000;

client_header_timeout  3m;
client_body_timeout    3m;
send_timeout           3m;

client_header_buffer_size    1k;
large_client_header_buffers  4 4k;

output_buffers   4 32k;
    
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_buffers 4 32k;
gzip_types text/plain text/html application/x-javascript text/xml text/css;
gzip_proxied  expired no-cache no-store private auth;
gzip_comp_level 7;

ignore_invalid_headers    on;


include  vhost/*.conf;


}


Обратите внимание на include vhost/*.conf; В папке vhost у нас будут конфиги для виртуальных хостов.

Пример конфиги виртуального хоста:
Код
    server {
        listen       80;
        server_name  site.ru www.site.ru;

        access_log  logs/site.access.log  main;

        # Main location
        location / {
            proxy_pass         http://127.0.0.1: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_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;
        }

        # Static files location
        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   /home/site.ru/www;
        }

    }


Здесь прописываются расширения статики и полный путь до сайта:
Код
        # Static files location
        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   /home/site.ru/www;


Изменения в аппаче
Укажем Apache на просмотр порта 8080, а не 80:
Код
Listen 8080


вместо
Код
Listen 80


и добавим строку:

NameVirtualHost *:8080

Необходимо откорректировать описания VirtualHost-ов на сервере:
Код
<VirtualHost [IP-адрес или домен]:80>


на
Код
<VirtualHost *:8080>


К приемру у меня:
Было
Код
<VirtualHost *:80>
        ServerName zatusim.ru
        ServerAlias www.zatusim.ru
итд

Стало
Код
<VirtualHost *:8080>
        ServerName zatusim.ru
        ServerAlias www.zatusim.ru
итд


Далее перезапускаем аппач:
Код
# service httpd restart

Запускаем nginx:
Код
/usr/local/nginx/sbin/nginx


Для автоматического запуска добавляем в /etc/rc.local
Категория: Мои статьи | Добавил: Admin (28.04.2011)
Просмотров: 2759 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024Сделать бесплатный сайт с uCoz