Настройка nginx для приложения на Laravel

Ромчик
0

Доброго времени суток. Не так давно пришлось мне настраивать веб-сервер для работы Laravel. В качестве веб-сервера был выбран nginx. Что такое nginx вы можете прочитать на официальном сайте. Задача стояла простая: установить nginx, настроить виртуальный хост, на котором разместить приложение Laravel. Задача простая, но в ходе настроек возникли трудности, поэтому я и решил подробно описать процесс настройки. В качестве сервера выступает Ubuntu 18.04

Ну, что поехали.

Установка nginx.

Для установки nginx в Ubuntu необходимо в консоли выполнить следующую команду:


sudo apt-get install nginx

Ждем. На момент написания статьи была nginx версии 1.14.0

Все nginx установили, теперь мы можем приступить к настройке самого nginx.

Настройка nginx.

Файлы конфигурации nginx находятся /ete/nginx

Основной файл конфигурации nginx.conf. Давайте посмотрим его.

  • user – указывает от чьего имени запускается nginx
  • worker_processes – устанавливается в auto или указывается число равное числу процессоров системы
  • pid тут все понятно
  • include /etc/nginx/module-enabled/*.conf – где хранятся подключаемые модули.
  • worker_connections – максимальное количество соединений на один процесс. Максимальное число обслуживания клиентов равно worker_processes * worker_connections

Дальше идет секция http:

  • sendfile – позволяет отправлять данные в сеть минуя адресное пространство приложения, что сказывается на быстродействии. В большинстве случаев лучше ставить on
  • tcp_nodelay – при включении данной опции заставляет сокет отправлять данные в буфер вне зависимости от размера пакета
  • tcp_nopush – работает как противоположность tcp_nodelay, но реализована только во FreeBSD
  • keepalive_timeout – устанавливает максимальное количество времени для поддержания соединения, если по нему не передаются данные. Так, например, если мы используем статичные страницы, то данный параметр можно уменьшить (ведь данные мы отдали и все)
  • type_hash_max_size – устанавливает максимальный размер хэш таблиц
  • include /etc/nginx/mime.types – устанавливает путь к файлу со списком mime-type
  • default_type – устанавливат mime-type по умолчанию
  • ssl_protocols – список поддерживаемых ssl протоколов
  • ssl_prefer_server_ciphers – включенный параметр заставляет соблюдать все настройки по ssl
  • access_log и error_log – указываем где будут хранится логи
  • gzip – ставим on, тем самым включаем режим сжатия
  • include /etc/nginx/conf.d/*.conf – указываем где будет хранится конфигурация для виртуальных хостов
  • include /etc/nginx/sites-enabled/* — указываем где будут хранится виртуальные хосты

Вот мы и рассмотрели дефолтный конфиг nginx. В большинстве случаев его менять и не надо. Теперь переходим к настройке виртуального хоста.

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

Напомню, что виртуальный хост мы настраиваем для работы с Laravel (по большому счету, это не имеет большого значения)

Переходим /etc/nginx/sites-available. Для этого в консоли вводим команду:


cd /etc/nginx/sites-available

Теперь копируем файл default:


sudo cp ./default laravel.loc

Проверяем:


ls

Файл для виртуального хоста laravel.loc скопирован.  Открываем его на редактирование и помещаем в него следующий код:


server {

listen 80;

server_name laravel.loc;

root /var/www/laravel.loc;

 

index index.html index.htm index.php;

 

charset utf-8;

 

location / {

try_files $uri $uri/ /index.php?$query_string;

}

 

location = /favicon.ico { access_log off; log_not_found off; }

location = /robots.txt  { access_log off; log_not_found off; }

 

access_log off;

error_log  /var/log/nginx/laravel.loc-error.log error;

 

error_page 404 /index.php;

 

sendfile off;

 

location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

 

location ~ /\.ht {

deny all;

}

}

Сохраняем.

Теперь создадим ссылку на наш виртуальный хост. Для этого выполните следующую команду:


sudo ln -s /etc/nginx/sites-available/Laravel.loc /etc/nginx/sites-enabled/

Все. Проверяем конфигурацию, для этого выполните следующую команду:


sudo nginx -t

Все можем запускать nginx.

Команды для управления nginx

Для управления nginx в основном используются следующие команды:

  • service nginx start – запуск nginx
  • service nginx stop – остановка nginx
  • service nginx restart – перезапуск nginx
  • service nginx reload – перечитывание конфигурационного файла без перезапуска nginx
  • service nginx status – проверка статуса nginx

Заключение.

Мы с вами:

  • установили nginx,
  • рассмотрели основной файл конфигурации nginx,
  • создали виртуальный хост
  • запустили тест конфигурации
  • рассмотрели основные команды управления nginx
Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

©2012-2018 По всем вопросам обращайтесь через форму обратной связи

Яндекс.Метрика