Подешавање Nginx сервер блокова (виртуелних хостова) на Rocky Linux 9

Подешавање Nginx сервер блокова (виртуелних хостова) на Rocky Linux 9

У свету веб развоја, Nginx је постао незаобилазан веб сервер, познат по својој перформанси, скалабилности и флексибилности. У овом водичу, проћи ћемо кроз процес подешавања Nginx сервер блокова, познатих и као виртуелни хостови, на Rocky Linux 9. Ово ће вам омогућити да хостујете више веб сајтова на једном серверу, пружајући ефикасан и економичан начин за управљање вашим веб присуством.

Увод

Пре него што се упустимо у техничке детаље, важно је разумети појам виртуелних хостова. У суштини, виртуелни хост је конфигурација која омогућава Nginx-у да обрађује захтеве за више домена са једног физичког сервера. Ово се постиже додељивањем јединствених конфигурација за сваки домен, наводећи где се налазе његови датотеке и ресурси.

Ова функционалност је кључна за веб хостинг компаније и појединце који желе да управљају више веб сајтова са централизоване локације. Виртуелни хостови вам омогућавају да:

* Хостујете више веб сајтова на једном серверу: Ово ефикасно користи ресурсе сервера и смањује трошкове.
* Управљате различитим сајтовима са једне контролне табле: Ово упрошћава процес одржавања и конфигурације.
* Издвојите ресурсе за сваки сајт: Ово вам омогућава да ограничите коришћење ресурса за сваки сајт, спречавајући да један сајт утиче на друге.

Почетак

Пре почетка, морате да имате инсталиран Nginx сервер на вашем Rocky Linux 9 систему. Ако нисте инсталирали Nginx, следите ове кораке:

1. Ажурирање система:

sudo dnf update -y

2. Инсталирање Nginx-а:

sudo dnf install nginx -y

3. Покретање Nginx-а:

sudo systemctl start nginx

4. Омогућавање аутоматског покретања Nginx-а на почетку:

sudo systemctl enable nginx

Подешавање Виртуелног Хоста

Сада када је Nginx инсталиран, можемо да почнемо са подешавањем виртуелног хоста.

1. Креирање директоријума за веб садржај:

sudo mkdir /var/www/yourdomain.com/public_html

Замените yourdomain.com са вашим стварним доменом.

2. Подешавање власништва над директоријумом:

sudo chown -R nginx:nginx /var/www/yourdomain.com

3. Креирање конфигурационе датотеке за виртуелни хост:

sudo nano /etc/nginx/conf.d/yourdomain.com.conf

4. Садржај конфигурационе датотеке:

server {
listen 80;
server_name yourdomain.com www.yourdomain.com;

root /var/www/yourdomain.com/public_html;

index index.html index.htm index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}

Објашњење конфигурационе датотеке:

* listen 80; – Ово дефинише порт на којем ће Nginx слушати захтеве.
* server_name yourdomain.com www.yourdomain.com; – Ово дефинише име домена повезано са овим виртуелним хостом. Можете навести више домена, одвојених размаком.
* root /var/www/yourdomain.com/public_html; – Ово дефинише главни директоријум за садржај веб сајта.
* index index.html index.htm index.php; – Ово дефинише датотеке које ће бити приказане као почетна страница ако се не наведе другачија датотека.
* location / { ... } – Ово дефинише блок који се примењује на све захтеве.
* try_files $uri $uri/ =404; – Ово тражи датотеку наведеним путем. Ако се пронађе, служи се. У супротном, враћа се 404 грешка.
* location ~ \.php$ { ... } – Ово дефинише блок који се примењује на PHP датотеке.
* fastcgi_pass unix:/run/php-fpm/php-fpm.sock; – Ово прослеђује PHP захтеве PHP-FPM процесу.
* fastcgi_index index.php; – Ово дефинише PHP датотеку која ће се користити као почетна страница.
* include fastcgi_params; – Ово уноси додатне параметре за конфигурацију PHP-FPM.

5. Провера конфигурације:

sudo nginx -t

Ако нема грешака, можете да поново покренете Nginx:

sudo systemctl restart nginx

Додатак SSL сертификата

За сигурну комуникацију са веб сајтом, потребно је додати SSL сертификат. Препоручује се коришћење Let’s Encrypt-а за бесплатно генерисање SSL сертификата.

1. Инсталирање certbot-а:

sudo dnf install certbot python3-certbot-nginx

2. Добијање SSL сертификата:

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

3. Поновно покретање Nginx-а:

sudo systemctl restart nginx

Додатне Конфигурације

Поред основних подешавања, Nginx нуди многе додатне опције за конфигурацију. Неке од најчешћих су:

* Проксирање: Nginx се може користити за проксирање захтева ка другим серверима.
* Кеширање: Nginx може кеширати статички садржај, побољшавајући перформансе веб сајта.
* Редирекција: Nginx се може користити за преусмеравање захтева са једне адресе на другу.
* Логирање: Nginx може генерисати логи датотеке које садрже информације о захтевима.

Закључак

Подешавање виртуелних хостова на Nginx-у је једноставан процес који вам омогућава да хостујете више веб сајтова на једном серверу. Ово не само да штеди ресурсе, већ такође упрошћава управљање и одржавање ваших веб страница. Коришћење Let’s Encrypt-а за SSL сертификате обезбеђује сигурну комуникацију са вашим веб сајтом.

Важно је напоменути да овај водич претпоставља основно познавање Linux-а и Nginx-а. За даљу оптимизацију и коришћење напредних функција, погледајте званичну документацију Nginx-а.

Често Постављана Питања

1. Da li je moguće da se koristi samo jedan virtualni host u Nginx-u?

Da, moguće je koristiti samo jedan virtualni host u Nginx-u ako želite da hostujete samo jedan web sajt. Međutim, ovo ne bi iskoristilo prednosti višestrukih virtualnih hostova.

2. Koliko virtualnih hostova mogu da se kreira u Nginx-u?

Broj virtualnih hostova koji se mogu kreirati u Nginx-u zavisi od resursa vašeg servera. Nijedna ograničenja nema osim što će previše virtualnih hostova usporiti performanse servera.

3. Da li je Nginx bolji od Apache-a?

Nginx i Apache su oba popularna i moćna web servera. Nginx je generalno brži i efikasniji, a Apache je poznatiji po svojoj fleksibilnosti. Izbor između njih zavisi od vaših specifičnih potreba.

4. Šta je PHP-FPM i zašto je potreban?

PHP-FPM je FastCGI proces manager za PHP. On obrađuje PHP zahteve i pruža bolju performansu u odnosu na ugrađeni PHP proces manager.

5. Da li je moguće koristiti Nginx za proxy server?

Da, Nginx se može koristiti kao reverse proxy server. Ovo vam omogućava da proksirate zahteve ka drugim serverima, poput web servera, baze podataka itd.

6. Koliko je bezbedno koristiti Let’s Encrypt za SSL sertifikate?

Let’s Encrypt je besplatan i pouzdan provajder SSL sertifikata. Njihova usluga je široko prihvaćena i koristi se od strane mnogih web sajtova.

7. Kako mogu da generišem statistiku o performansama Nginx-a?

Nginx može da generiše statistiku o performansama u log datotekama. Ove datoteke možete da analizirate koristeći alatke za analizu log datoteka, kao što je AWStats.

8. Da li je Nginx kompatibilan sa drugim operativnim sistemima?

Da, Nginx je kompatibilan sa mnogim operativnim sistemima, uključujući Linux, Windows, macOS i Unix.

9. Kako mogu da ažuriram Nginx?

Da biste ažurirali Nginx, koristite komandu sudo dnf update nginx.

10. Da li postoje alternative Nginx-u?

Postoji nekoliko alternativa Nginx-u, kao što je Apache, lighttpd i Caddy.

Tags: Nginx, Rocky Linux 9, virtualni host, web server, konfiguracija, SSL, Let’s Encrypt, PHP-FPM, proxy, keširanje, redireciranje, logiranje.