Default Green Orange
Gemini_13's Blog
Блокнот полезных вещей
Home
    • Карта сайта
    • Обо мне
RSS

Ставим Nginx и настраиваем виртуальные хосты на FreeBSD

FreeBSD Add comments

Установка Nginx на FreeBSD не сильно отличается от установки на Linux, но все же накатаю заметку.

Установка Nginx

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

Выбираем с какими модулями нужен nginx. Каждому свое, но для простого старта хватит дефолтного выбора.
Нажимаем ОК и ждем завершения установки.
Когда установка закончилась, нужно добавить Nginx в автозапуск:

# ee /etc/rc.conf

Дописываем в конец:

nginx_enable="YES"

Сохраняем и закрываем.

Настройка виртуальных хостов

Что касается конфига, то тут я приведу только основную суть настройки виртуальных хостов по моему вкусу. Манов по настройке Nginx больше чем нужно, поэтому официальный сайт или гугл рулят в этом плане.
Изначально конфиг расчитан на то, что все настройки хостов будут в одном файле. Но на мой взгляд это не правильно начиная с момента, когда больше одного хоста на сервере. Почему? Да, потому что полная каша в конфиге. Это попросту неудобно. Поэтому будем в главный конфиг инклюдить мелкие конфиги хостов с папок, как это было организовано в прошлых версиях Nginx на linux (за фрю не знаю).
В начале создадим папки, в которых у нас будут конфиги:

# mkdir /usr/local/etc/nginx/sites-enabled/
# mkdir /usr/local/etc/nginx/sites-available/

sites-available — тут будут лежать все конфиги хостов
sites-enabled — в эту папаку будем бросать линки на нужные конфиги

Изначально у нас в конфиге есть дефолтный хост с примерами и пример настройки хоста с SSL. Делаем следующим образом… Создаем новый файл конфига и назовем его deafult и поместим в этот файл стандартные секции server.

Создаем файл:

# touch /usr/local/etc/nginx/sites-available/default

Открываем конфиг и переносим с него сексции в default:

# ee /usr/local/etc/nginx/nginx.conf

Потом внизу добавляем строку:

include /usr/local/etc/nginx/sites-enabled/*;

В конечном итоге должно получится нечто такого плана:

user  nobody;
worker_processes  2;

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

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

    include /usr/local/etc/nginx/sites-enabled/*;
}

Сохраняем и закрываем.
Теперь включим хост. По сути тут метод тоже простой. Если в sites-enabled конфиг есть — будет работать, если нет — не будет работать. В нашем случае физически конфига там нет, но есть ссылка на него. То есть, конфиг может и лежать в sites-available, но если линка нет, хост не будет работь.

# ln -s /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default

Осталось запустить сервис:

# service 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.

Добавление новых хостов

Процесс добавления новых хостов прост. Пойдем по порядку.
1. Создадим файл конфига хоста:

# ee /usr/local/etc/nginx/sites-available/site.com

2. Вписываем в него конфиг и сохраняем.
3. Создаем ссылку, то есть включаем хост в работу:

# ln -s /usr/local/etc/nginx/sites-available/site.com /usr/local/etc/nginx/sites-enabled/site.com

4. Перезагружаем Nginx:

# service nginx restart

Ну вот и всё. На мануал не претендует, это просто заметка для себя. 🙂


23 декабря, 2013  
Tags: freebsd, host, hosts, nginx, virtual hosts, нджинкс, хост, хосты

2 комментария to “Ставим Nginx и настраиваем виртуальные хосты на FreeBSD”

  1. Gemini_13's Blog » Blog Archive Уставнока MariaDB 5.5 на FreeBSD 10 » Gemini_13's Blog
    27 апреля, 2014 at 1:46 пп

    […] Уставнока и настройка простого веб-сервера не сложная, но ради заметки запишу сюда. Заметка по установке Nginx уже есть — Ставим Nginx и настраиваем виртуальные хосты на FreeBSD. […]


  2. pr0g
    17 сентября, 2015 at 10:00 пп

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

    abc.com
    default
    site.com

    то все домены которые ведут на этот сервер, но не имеющие еще файла-конфигурации в nginx работают с файлом abc.com, хотя по идее должны натыкаться на заглушку default.
    Решил ситуацию путем переименования файла default в !default, чтобы он находится выше всех файлов.
    Хотел спросить может есть какое-то другое решение?


Leave a Reply

  • Рубрики

    • FreeBSD (20)
    • Linux (46)
    • MySQL (11)
    • Windows (14)
    • Железо (3)
    • Мои моды к TorrentPier II (16)
    • Настройка сервера (49)
    • Разное (33)
    • Скрипты (30)
  • Свежие записи

    • Поля форм на Yii2: textInput(), passwordInput() и hiddenInput()
    • Поля форм на Yii2: CheckboxList()
    • SpeedTest датацентров Digital Ocean
    • Патчим Gearman на Debian
    • nginx + Apache 2.4 и REMOTE_ADDR (решение проблемы)
    • Создание и подключение swap-файла в Debian
    • Запуск PhpStorm 9 x64 на Windows
    • Рекурсивная замена прав доступа для папок и файлов в Linux
    • VirtualBox 5 + phpVirtualBox на Debian 8.2 (jessie)
    • Обработка сессий PHP с помощью Redis + phpredis на Debian 7.8
  • Ссылки

    • My GitHub
  • Архивы

    • Июнь 2016 (2)
    • Март 2016 (2)
    • Январь 2016 (3)
    • Ноябрь 2015 (2)
    • Август 2015 (1)
    • Февраль 2015 (1)
    • Январь 2015 (7)
    • Октябрь 2014 (1)
    • Июнь 2014 (1)
    • Май 2014 (1)
    • Апрель 2014 (7)
    • Февраль 2014 (9)
    • Январь 2014 (5)
    • Декабрь 2013 (7)
    • Ноябрь 2013 (1)
    • Октябрь 2013 (3)
    • Август 2013 (4)
    • Июль 2013 (4)
    • Июнь 2013 (3)
    • Апрель 2013 (2)
    • Март 2013 (2)
    • Февраль 2013 (6)
    • Январь 2013 (2)
    • Декабрь 2012 (1)
    • Ноябрь 2012 (2)
    • Октябрь 2012 (7)
    • Сентябрь 2012 (22)
Все права защищены © 2013 Gemini_13's Blog
G13.org.ua