Nginx

Как да инсталирате Nginx и да конфигурирате на CentOS 8

Как да инсталирате Nginx и да конфигурирате на CentOS 8
Nginx е бърз и лек уеб сървър. Конфигурационните файлове на Nginx са наистина прости и лесни за работа. Това е чудесна алтернатива на уеб сървъра на Apache.  В тази статия ще ви покажа как да инсталирате и конфигурирате Nginx уеб сървър на CentOS 8. И така, нека започнем.

Инсталиране на Nginx:

Nginx се предлага в официалното хранилище на пакети на CentOS 8. Така че е много лесно да се инсталира.

Първо актуализирайте кеша на хранилището на DNF, както следва:

$ sudo dnf makecache

Сега инсталирайте Nginx със следната команда:

$ sudo dnf инсталира nginx

За да потвърдите инсталацията, натиснете Y и след това натиснете .

Nginx трябва да бъде инсталиран.

Управление на услугата nginx:

По подразбиране, nginx услугата трябва да бъде неактивен (не работи) и хора с увреждания (няма да се стартира автоматично при зареждане).

$ sudo systemctl статус nginx

Можете да стартирате nginx услуга, както следва:

$ sudo systemctl стартира nginx

nginx услугата трябва да бъде бягане.

$ sudo systemctl статус nginx

Сега добавете nginx услуга за стартиране на системата, както следва:

$ sudo systemctl активира nginx

Конфигуриране на защитната стена:

Трябва да конфигурирате защитната стена, за да разрешите достъп до HTTP порт 80 и HTTPS порт 443, за да имате достъп до уеб сървъра на Nginx от други компютри в мрежата.

Можете да разрешите достъп до HTTP и HTTPS порта със следната команда:

$ sudo firewall-cmd --add-service = http, https - постоянен

Сега, за да влязат в сила промените, изпълнете следната команда:

$ sudo firewall-cmd --reload

Тестване на уеб сървъра:

Трябва да знаете IP адреса или името на домейна на уеб сървъра Nginx, за да имате достъп до него.

Можете да намерите IP адреса на вашия уеб сървър Nginx със следната команда:

$ ip a

В моя случай IP адресът е 192.168.20.175. За вас ще е различно. Така че, не забравяйте да го замените от сега нататък.

Сега посетете http: // 192.168.20.175 от вашия уеб браузър. Трябва да видите следната страница. Това означава, че уеб сървърът на Nginx работи.

Конфигурационни файлове на nginx:

Файловете за конфигуриране на уеб сървър на Nginx са в / и т.н. / nginx / директория.

$ дърво / etc / nginx

/ etc / nginx / nginx.конф е основният Nginx конфигурационен файл.

Основната уеб директория на уеб сървъра на Nginx е / usr / share / nginx / html /. И така, тук трябва да съхранявате файловете на уебсайта си.

Настройване на основен уеб сървър:

В този раздел ще ви покажа как да настроите основен уеб сървър на Nginx.

Първо вземете резервно копие на оригиналния Nginx конфигурационен файл със следната команда:

$ sudo mv -v / etc / nginx / nginx.conf / etc / nginx / nginx.конф.оригинален

Сега създайте нов Nginx конфигурационен файл, както следва:

$ sudo nano / etc / nginx / nginx.конф

Сега въведете следните редове в / etc / nginx / nginx.конф файл и запазете файла.

потребител nginx nginx;
работник_процесира автоматично;
error_log / var / log / nginx / error.дневник;
pid / run / nginx.pid;
 
събития
worker_connections 1024;

 
http
включва / etc / nginx / mime.видове;
default_type приложение / октет-поток;
 
сървър
слушайте 80;
пример за име на сървър.com www.пример.com;
root / usr / share / nginx / html;
индекс индекс.html;
access_log / var / log / nginx / access.дневник;

Тук, потребител Опцията се използва за задаване на потребител и група за изпълнение на Nginx nginx съответно.

The log_log опция се използва за задаване на пътя на файла на регистрационния файл за грешки / var / log / nginx / error.дневник. Тук ще се съхраняват грешки, свързани със сървъра Nginx.

Основната конфигурация на сървъра на Nginx е дефинирана в сървър раздел вътре в http раздел. Можете да дефинирате повече от един сървър раздел вътре в http раздел, ако е необходимо.

В сървър раздел,

слушам опцията се използва за конфигуриране на Nginx да слуша порт 80 (HTTP порт) за уеб заявки.

Име на сървъра опцията се използва за задаване на едно или повече имена на домейни за уеб сървъра Nginx. Ако настройките на DNS са правилни, можете да получите достъп до уеб сървъра на Nginx, като използвате тези имена на домейни.

access_log се използва за задаване на пътя на регистрационния файл за достъп на / var / log / nginx / access.дневник. Когато някой се опита да осъществи достъп до уеб сървъра на Nginx, информацията за достъп (т.е.д. IP адрес, URL, HTTP код на състоянието) ще бъдат регистрирани в този файл.

The местоположение опция се използва за задаване на основната директория на уеб сървъра Nginx.

Ето, корен директория е / usr / share / nginx / html /.

Тук трябва да се пазят всички файлове на уебсайта. The индекс набори от опции индекс.html като файл по подразбиране за обслужване, ако не се изисква конкретен файл. Например, ако посетите http: // 192.168.20.175 / myfile.html, тогава вие Nginx ще се върнете myfile.html файл. Но ако посетите http: // 192.168.20.175 /, тогава Nginx ще ви изпрати индекс.html файл, тъй като не е поискан конкретен файл.

Сега премахнете всички файлове от / usr / share / nginx / html / директория (уеб корен), както следва:

$ sudo rm -rfv / usr / share / nginx / html / *

Сега създайте нов индекс.html файл в / usr / share / nginx / html / директория, както следва:

Сега въведете следните редове в индекс.html файл и запазете файла.

Здравей свят


© 2020 LinuxHint.com

Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

Сега посетете http: // 192.168.20.175 от вашия уеб браузър и трябва да видите следващата страница. поздравления! Настроили сте първия си уеб сървър на Nginx.

Конфигуриране на страници за грешки:

Можете да конфигурирате страници за грешки в Nginx. Например, ако страница / файл / директория не са налични, HTTP кодът на състоянието 404 ще бъде върнат в браузъра. Можете да зададете персонализирана страница за грешка в HTML за HTTP кода на състоянието 404, която ще бъде върната в браузъра.

За да направите това, добавете следния ред в сървър раздел на nginx.конф файл.

сървър
..
грешка_страница 404/404.html;
..

Сега създайте файл 404.html в уеб корен на Nginx / usr / share / nginx / html / както следва:

$ sudo nano / usr / share / nginx / html / 404.html

Сега въведете следните редове в 404.html и запазете файла.

Грешка 404


Страницата не е намерена


© 2020 LinuxHint.com

Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

Сега опитайте да получите достъп до несъществуващ път (http: // 192.168.20.175 / nopage.html) и трябва да видите следната страница за грешка.

Ако 404.html файлът е в различен път към файловата система (да кажем / usr / share / nginx / html / грешки / директория), можете да съпоставите URL адреса / 404.html към него, както следва:

сървър
..
грешка_страница 404/404.html;
местоположение / 404.html
root / usr / share / nginx / html / грешки;

..

Сега направете нова директория  / usr / share / nginx / html / грешки / както следва:

$ sudo mkdir / usr / share / nginx / html / грешки

Сега създайте нов файл 404.html в директорията / usr / share / nginx / html / грешки / както следва:

$ sudo nano / usr / share / nginx / html / грешки / 404.html

Сега въведете следните редове в 404.html файл и запазете файла.

СТРАНИЦАТА НЕ Е НАМЕРЕНА


ОБРАТНО НАЧАЛО

Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

Сега опитайте да получите достъп до несъществуващ път (http: // 192.168.20.175 / nopage.html) и трябва да видите актуализираната страница за грешка.

По същия начин можете да зададете страница за грешка за други HTTP кодове на състоянието.

Можете също да зададете една и съща страница за грешка за множество HTTP кодове на състоянието. Например да зададете същата страница за грешка / 404.html за HTTP кодовете на състоянието 403 и 404, Напиши грешка_страница опция, както следва:

грешка_страница 403 404/404.html;

Конфигуриране на регистрационни файлове:

В Nginx, log_log и access_log опциите се използват за регистриране на съобщения за грешки и информация за достъп.

Форматът на log_log и access_log опциите са:

error_log / path / to / error / log / file [по избор: custom-log-name];
access_log / path / to / access / log / file [по избор: custom-log-name];

Можете да дефинирате свой собствен дневник за грешки и да имате достъп до форматите на дневника, ако искате.

За да направите това, използвайте log_format опция в http раздел, за да дефинирате вашия персонализиран формат на дневника, както следва.

http
..
log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
..
сървър
..
access_log / var / log / nginx / access.регистрация проста;
..

Тук името на регистрационния формат е просто. Някои nginx променливи се използват за дефиниране на потребителския формат на дневника. Посетете ръководството за вградени променливи Nginx, за да научите за всички променливи Nginx.

Форматът на потребителския дневник трябва да бъде затворен в единични кавички. Форматът на дневника може да бъде дефиниран в един ред или в няколко реда. Показах как да дефинирам формата на регистрационния файл в няколко реда в тази статия. Няма да имате проблеми с едноредов формат на дневника, повярвайте ми!

След като регистрационният формат просто е дефиниран, access_log опцията се използва, за да каже на Nginx да го използва като дневник за достъп.

По същия начин можете да зададете персонализиран формат на регистрационния файл за грешки, като използвате log_log опция.

Конфигурирах само персонализиран регистрационен формат за регистрационния файл за достъп в тази статия.

Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

Сега можете да наблюдавате регистрационния файл за достъп, както следва:

$ sudo tail -f / var / log / nginx / access.дневник

Можете също така да наблюдавате регистрационния файл за грешки, както следва:

$ sudo tail -f / var / log / nginx / error.дневник

Ако искате, можете едновременно да наблюдавате регистрационния файл за достъп и файловете с грешки, както следва:

$ sudo tail -f / var / log / nginx / грешка, достъп.дневник

Както можете да видите, се използва новият формат на регистрационния файл за достъп.

Отказ на достъп до определени пътища:

Можете да използвате регулярни изрази, за да съответствате на определени URI пътища и да отказвате достъп до него в Nginx.

Да приемем, че вашият уебсайт се управлява от Git и вие искате да откажете достъп до .git / директория във вашия уеб корен.

За да направите това, въведете следните редове в сървър раздел на / etc / nging / nginx.конф файл:

сървър
..
местоположение ~ \.git
отричам всички;

..

Както можете да видите, достъп до всеки път, който съдържа .git се отказва.

Конфигуриране на компресия:

Можете да компресирате уеб съдържание, преди да го изпратите до браузъра с помощта gzip за да спестите използването на честотна лента на уеб сървъра Nginx.

Имам няколко JPEG изображения в / usr / share / nginx / html / images / директория.

Мога да осъществя достъп до тези изображения, като използвам пътя на URI / изображения.

За да активирате gzip компресия само за JPEG изображения в URI пътя / изображения, въведете следните редове в сървър раздел на / etc / nginx / nginx.конф файл.

сървър
..
местоположение / изображения
gzip на;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

..

Тук, gzip_comp_level се използва за задаване на нивото на компресия. Може да е произволно число от 1 до 9. Колкото по-високо е нивото, толкова по-малък ще бъде компресираният файл.

Файлът ще бъде компресиран само ако размерът на файла е по-горе gzip_min_length. Задал съм го на около 100 KB в този пример. Така че JPEG файловете, по-малки от 100 KB, няма да бъдат компресирани с gzip.

The  gzip_types се използва за задаване на типа mime на файловете, които ще бъдат компресирани.

Можете да намерите mime тип от разширения на файлове, както следва:

$ grep jpg / etc / nginx / mime.видове

Както можете да видите, за .jpg или .jpeg разширение на файла, типът mime е image / jpeg.

Можете да зададете един или повече типове мимове, като използвате gzip_types опция.

Ако искате да зададете няколко типа mime, не забравяйте да ги разделите с интервали, както следва:

"
gzip_types image / jpeg image / png image / gif;

Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

Както можете да видите, Nginx изпраща gzip компресирани файлове с изображения до браузъра при поискване.

Както можете да видите на екранната снимка по-долу, компресираният файл gzip е по-малък от оригиналния файл.

$ sudo tail -f / var / log / nginx / access.дневник

Активиране на HTTPS:

Можете да активирате SSL в Nginx много лесно. В този раздел ще ви покажа как да настроите самоподписан SSL сертификат в Nginx.

Първо отидете на / и т.н. / ssl / директория, както следва:

$ cd / etc / ssl

Сега генерирайте SSL ключ сървър.ключ и удостоверение сървър.crt със следната команда:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout
сървър.ключов сървър.crt

ЗАБЕЛЕЖКА: Трябва да имаш openssl инсталиран, за да работи това. Ако командата openssl е недостъпна, инсталирайте openssl със следната команда:

$ sudo dnf install openssl -y

Сега въведете вашия двубуквен код на държава (i.д. САЩ за САЩ, Великобритания за Обединеното кралство, RU за Русия, CN за Китай) и пресата .

Сега въведете името на вашата държава / провинция и натиснете .

Сега въведете името на вашия град и натиснете .

Сега въведете името на вашата компания и натиснете .

Сега въведете името на организационната единица на вашата компания, която ще използва този сертификат, и натиснете .

Сега въведете напълно квалифицираното име на домейн (FQDN) на вашия уеб сървър Nginx и натиснете . SSL сертификатът ще бъде валиден само ако достъп до уеб сървъра на Nginx се използва с това име на домейн.

Сега въведете вашия имейл адрес и натиснете .

Вашият SSL сертификат трябва да е готов.

SSL сертификатът и ключът трябва да бъдат генерирани в / и т.н. / ssl / директория.

$ ls -lh

Сега отворете конфигурационния файл на Nginx / etc / nginx / nginx.конф и промяна слушам пристанище към 443 и въведете следните редове в сървър раздел.

сървър
..
ssl включен;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.ключ;
..

Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

В реалния живот ще имате правилна настройка на DNS. Но за целите на тестването конфигурирах локално име на домейн, базирано на файлове, на компютъра, от който използвах за достъп до уеб сървъра на Nginx.

Ако искате да продължите, отворете / etc / hosts файл, както следва:

$ sudo nano / etc / hosts

След това добавете следния ред към / etc / hosts файл.

192.168.20.175 www.пример.com

Сега опитайте да посетите https: // www.пример.com и трябва да видите следващата страница. Ще видиш Вашата връзка не е сигурна съобщение, защото това е самоподписан сертификат. Това е добре само за тестване.

В реалния живот ще купувате SSL сертификати от сертифициращи органи (CA) и ще ги използвате. Така че, няма да видите този тип съобщение.

Както можете да видите, Nginx обслужва уеб страницата през HTTPS. И така, SSL работи.

SSL информацията на www.пример.com.

Пренасочване на HTTP заявки към HTTPS:

Ако някой посети вашия уебсайт чрез HTTP протокол (http: // www.пример.com или http: // 192.168.20.175) вместо HTTPS (https: // www.пример.com), не искате да отхвърляте HTTP заявката. Ако направите това, ще загубите посетител. Това, което наистина трябва да направите, е да пренасочите потребителя към сайта с активиран SSL. Наистина е лесно да се направи.

Първо отворете конфигурационния файл на Nginx / etc / nginx / nginx.конф и създайте нов сървър раздел вътре в http раздел, както следва:

http
..
сървър
слушайте 80;
име на сървър www.пример.com;
връщане 301 https: // www.пример.com $ request_uri;

..

Това е финалът / etc / nginx / nginx.конф файл:

потребител nginx nginx;
работник_процесира автоматично;
error_log / var / log / nginx / error.дневник;
pid / run / nginx.pid;
събития
worker_connections 1024;

http
включва / etc / nginx / mime.видове;
default_type приложение / октет-поток;
log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
 
сървър
слушайте 80;
име на сървър www.пример.com;
връщане 301 https: // www.пример.com $ request_uri;

сървър
слушайте 443;
име на сървър www.пример.com;
ssl включен;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.ключ;
access_log / var / log / nginx / access.регистрация проста;
местоположение /
root / usr / share / nginx / html;
индекс индекс.html;

местоположение / изображения
gzip на;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

грешка_страница 404/404.html;
местоположение / 404.html
root / usr / share / nginx / html / грешки;

местоположение ~ \.git
отричам всички;


Сега рестартирайте nginx услуга, както следва:

$ sudo systemctl рестартирайте nginx

Сега, ако се опитате да осъществите достъп до http: // 192.168.20.175 или http: // www.пример.com, ще бъдете пренасочени към https: // www.пример.com.

И така, вие инсталирате и конфигурирате уеб сървъра на Nginx на CentOS 8. Благодаря, че прочетохте тази статия.

Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...
Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...