Установка nginx под FreeBSD

#0. Установка nginx

Установку nginx под FreeBSD, как и прежде, будем производить из коллекции портов. Перейдём в нужный порт, запустим процесс установки.

# cd /usr/ports/www/nginx
# make install clean

После этого откроется псевдографическое меню выбора параметров установки. Чего только нет в модулях для nginx: mp4-стриминг, прокси для почтовых служб, балансер запросов и многое другое. Мы будем использовать nginx в качестве фронтэнда для других вебслужб или FastCGI, поэтому отметим только самые необходимые для этого модули.

     ┌────────────────────────────────────────────────────────────────────┐
     │                    Options for nginx 1.0.10,1                      │
     │ ┌────────────────────────────────────────────────────────────────┐ │
     │ │[X] IPV6                      Enable IPv6                       │ │
     │ │[X] HTTP_MODULE               Enable HTTP module                │ │
     │ │[X] HTTP_CACHE_MODULE         Enable http_cache module          │ │
     │ │[X] HTTP_REWRITE_MODULE       Enable http_rewrite module        │ │
     │ │[X] HTTP_STATUS_MODULE        Enable http_stub_status module    │ │
     │ │[X] WWW                       Enable html sample files          │ │
     ├─└────────────────────────────────────────────────────────────────┘─┤
     │                       [  OK  ]       Cancel                        │
     └────────────────────────────────────────────────────────────────────┘

Все остальные модули можно будет добавлять позже, при необходимости.

#1. Постинсталляционная настройка

Планируется использоваться nginx для нескольких сайтов, поэтому создаём директорию, в которой будут храниться файлы разных виртуальных хостов.

# mkdir /usr/local/www/vhosts

Конфигурация каждого виртуального хоста будет храниться в отдельном файле-конфиге, в директории /usr/local/etc/nginx/includes, создадим данную директорию.

# mkdir /usr/local/etc/nginx/includes

Редактируем главный конфиг nginx и приводим к следующему виду.

# vi /usr/local/etc/nginx/nginx.conf
# Пользователь и группа, от которых будет работать nginx
user nobody nobody;

# Количество процессов, автор рекомендует в основном устанавливать в количество ядер процессоров в системе 
worker_processes  4;

# Где будет находится pid-файл
pid        /var/run/nginx.pid;

events {
    # Для FreeBSD
    use kqueue;
    # Количество обслуживаемых соединений на каждый процесс
    worker_connections  4096;
}

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

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

    keepalive_timeout           60;

    gzip                        on;
    gzip_min_length             1100;
    gzip_buffers                4 8k;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/plain application/xml;

    client_header_timeout  15m;
    client_body_timeout    15m;
    send_timeout           15m;

    client_max_body_size    160m;

    proxy_buffering on;
    proxy_buffers   128     64k;
    proxy_buffer_size       64k;
    proxy_connect_timeout   900;
    proxy_read_timeout      900;
    proxy_send_timeout      900;
    fastcgi_read_timeout    900;
    fastcgi_send_timeout    900;

    include /usr/local/etc/nginx/includes/*.conf;

}

После этого создадим конфиг-файл для отдельного виртуального хоста example.com в директории /usr/local/etc/nginx/includes/.

# vi /usr/local/etc/nginx/includes/example.com.conf
server {
        listen 10.10.10.2:80;
        server_name *.exapmle.com example.com;
        error_page 404 = @fallback;
        location / {
                proxy_pass http://10.10.10.2:8080;
                proxy_redirect http://10.10.10.2:8080/ /;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
        }
        location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                root /usr/local/www/vhosts/example.com;
        }
}

#2. Первый запуск

Первым делом добавим nginx в автозагрузку при старте системы.

# echo 'nginx_enable="YES"' >> /etc/rc.conf

После чего проверяем правильность синтаксиса конфигурационных файлов.

# nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

Наконец, запускаем вебсервер nginx.

# /usr/local/etc/rc.d/nginx start
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.

Проверим, слушает ли nginx на 80-ом порту.

# netstat -Lan | grep 80
tcp4  0/0/4096       10.10.10.2.80

На этом установка и первоначальная настройка вебсервера nginx закончена. После установки первым делом неплохо было бы настроить ротацию логов в nginx.

nginx/ustanovka_nginx.txt · Последние изменения: 2014/12/02 04:33 (внешнее изменение)
Наверх
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0