Page cover

πŸ†–Ubuntu 20.04 da Nginx qanday o'rnatiladi

// Qo'llanma //

Ma'lumot

Talablar: Sizda Ubuntu 20.04 linux serveringiz bo'lishi kerak

Nginx dunyodagi eng mashhur veb-serverlardan biri bo'lib, internetdagi eng katta va eng yuqori trafikli saytlarni joylashtirish uchun javobgardir. Bu veb-server yoki teskari proksi sifatida ishlatilishi mumkin bo'lgan engil tanlovdir.

Ushbu qo'llanmada biz Nginx-ni Ubuntu 20.04 serveringizga qanday o'rnatish, xavfsizlik devorini sozlash, Nginx jarayonini boshqarish va bitta serverdan bir nechta domenlarni joylashtirish uchun server bloklarini sozlashni muhokama qilamiz.

1-qadam - Nginx-ni o'rnatish

aptNginx Ubuntu'ning standart omborlarida mavjud bo'lgani uchun uni qadoqlash tizimi yordamida ushbu omborlardan o'rnatish mumkin .

Ushbu sessiyada qadoqlash tizimi bilan birinchi o'zaro aptaloqamiz bo'lgani uchun biz eng so'nggi paketlar ro'yxatiga kirishimiz uchun mahalliy paketlar indeksimizni yangilaymiz. Shundan so'ng biz o'rnatishimiz mumkin nginx

$ sudo apt update
$ sudo apt install nginx

Jarayonni qabul qilgandan so'ng, aptNginx va kerakli bog'liqliklar serveringizga o'rnatiladi.

2-qadam - xavfsizlik devorini sozlash

Nginx-ni sinab ko'rishdan oldin xavfsizlik devori dasturi xizmatga kirishga ruxsat berish uchun sozlanishi kerak. Nginx o'rnatilgandan so'ng o'zini xizmat sifatida ro'yxatdan o'tkazadi ufw, bu esa Nginx-ga kirishga ruxsat berishni osonlashtiradi.

ufwYozish orqali qanday ishlashni biladigan ilova konfiguratsiyalarini sanab o'ting:

$ sudo ufw app list

Ilova profillari ro'yxatini olishingiz kerak:

OutputAvailable applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Natijadan ko'rinib turibdiki, Nginx uchun uchta profil mavjud:

  • Nginx Full : Bu profil ikkala portni ham ochadi 80 (normal, shifrlanmagan veb-trafik) va port 443 (TLS/SSL shifrlangan trafik)

  • Nginx HTTP : Bu profil faqat 80-portni ochadi (oddiy, shifrlanmagan veb-trafik)

  • Nginx HTTPS : Bu profil faqat 443-portni ochadi (TLS/SSL shifrlangan trafik)

Siz sozlagan trafikka ruxsat beradigan eng cheklovchi profilni yoqish tavsiya etiladi. Hozir biz faqat 80-portda trafikka ruxsat berishimiz kerak.

Buni kiritish orqali yoqishingiz mumkin:

$ sudo ufw allow 'Nginx HTTP'

O'zgarishlarni quyidagi so'zlarni kiritish orqali tasdiqlashingiz mumkin:

$ sudo ufw status

Chiqish qaysi HTTP trafigiga ruxsat berilganligini ko'rsatadi:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

3-qadam – Veb-serveringizni tekshirish

O'rnatish jarayoni oxirida Ubuntu 20.04 Nginx-ni ishga tushiradi. Veb-server allaqachon ishlayotgan bo'lishi kerak.

systemdXizmat ishlayotganiga ishonch hosil qilish uchun biz init tizimi bilan tekshirishimiz mumkin :

$ systemctl status nginx

Output● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   Memory: 3.5M
   CGroup: /system.slice/nginx.service
           β”œβ”€2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

Bu tasdiqlaganidek, xizmat muvaffaqiyatli boshlandi. Biroq, buni sinab ko'rishning eng yaxshi usuli Nginx-dan sahifani so'rashdir.

Serveringizning IP manziliga o'tish orqali dasturiy ta'minot to'g'ri ishlayotganligini tasdiqlash uchun standart Nginx ochilish sahifasiga kirishingiz mumkin. Agar siz serveringizning IP-manzilini bilmasangiz, uni icanhazip.com vositasidan foydalanib topishingiz mumkin, bu sizga internetdagi boshqa joydan olingan umumiy IP manzilingizni beradi:

$ curl -4 icanhazip.com

Serveringizning IP-manziliga ega bo'lsangiz, uni brauzeringizning manzil satriga kiriting:

http://your_server_ip

Siz standart Nginx ochilish sahifasini olishingiz kerak:

Agar siz ushbu sahifada bo'lsangiz, serveringiz to'g'ri ishlayapti va uni boshqarishga tayyor.

4-qadam – Nginx jarayonini boshqarish

Endi veb-serveringiz ishga tushirilgandan so'ng, ba'zi asosiy boshqaruv buyruqlarini ko'rib chiqamiz.

Veb-serveringizni to'xtatish uchun quyidagilarni kiriting:

$ sudo systemctl stop nginx

Veb-server to'xtatilganda uni ishga tushirish uchun quyidagilarni kiriting:

$ sudo systemctl start nginx

Xizmatni to'xtatib, keyin yana ishga tushirish uchun quyidagilarni kiriting:

$ sudo systemctl restart nginx

Agar siz faqat konfiguratsiyani o'zgartirayotgan bo'lsangiz, Nginx ko'pincha ulanishlarni uzmasdan qayta yuklashi mumkin. Buning uchun yozing:

$ sudo systemctl reload nginx

Odatiy bo'lib, Nginx server ishga tushganda avtomatik ravishda ishga tushadigan qilib tuzilgan. Agar bu siz xohlagan narsa bo'lmasa, quyidagini yozish orqali ushbu xatti-harakatni o'chirib qo'yishingiz mumkin:

$ sudo systemctl disable nginx

Xizmatni yuklashda ishga tushirish uchun qayta yoqish uchun quyidagilarni yozishingiz mumkin:

$ sudo systemctl enable nginx

Siz endi asosiy boshqaruv buyruqlarini o'rgandingiz va saytni bir nechta domenlarni joylashtirish uchun sozlashga tayyor bo'lishingiz kerak.

Nginx veb-serveridan foydalanilganda, server bloklari (Apache-dagi virtual xostlarga o'xshash) konfiguratsiya tafsilotlarini inkapsulyatsiya qilish va bitta serverdan bir nechta domenlarni joylashtirish uchun ishlatilishi mumkin. Biz your_domain nomli domenni o'rnatamiz , lekin siz uni o'zingizning domen nomingiz bilan almashtirishingiz kerak .

Ubuntu 20.04 da Nginx sukut bo'yicha yoqilgan bitta server blokiga ega bo'lib, u katalogdan hujjatlarga xizmat ko'rsatish uchun sozlangan /var/www/html. Bu bitta sayt uchun yaxshi ishlayotgan bo'lsa-da, agar siz bir nechta saytlarni joylashtirsangiz, u noqulay bo'lishi mumkin. ni o'zgartirish o'rniga, mijoz so'rovi boshqa saytlarga mos kelmasa, xizmat ko'rsatish uchun birlamchi katalog sifatida o'rnida qoldirib , your_domain saytimiz uchun /var/www/htmlkatalog tuzilmasini yarataylik ./var/www/var/www/html

Har qanday kerakli asosiy kataloglarni yaratish uchun bayroqdan foydalanib, domeningiz uchun quyidagi tarzda katalog yarating :-p

$ sudo mkdir -p /var/www/your_domain/html

$USERKeyin, atrof- muhit o'zgaruvchisi bilan katalogga egalik huquqini tayinlang :

$ sudo chown -R $USER:$USER /var/www/your_domain/html

umaskAgar siz standart fayl ruxsatlarini o'rnatgan qiymatingizni o'zgartirmagan bo'lsangiz, veb-ildizlaringizning ruxsatlari to'g'ri bo'lishi kerak . Ruxsatlaringiz to'g'ri ekanligiga ishonch hosil qilish va egasiga fayllarni o'qish, yozish va bajarishga ruxsat berish va guruhlarga va boshqalarga faqat o'qish va bajarish uchun ruxsat berish uchun siz quyidagi buyruqni kiritishingiz mumkin:

$ sudo chmod -R 755 /var/www/your_domain

Keyin, yoki sevimli muharriringiz yordamida namuna index.htmlsahifasini yarating:nano

$ sudo nano /var/www/your_domain/html/index.html

Ichkarida quyidagi HTML namunasini qo'shing:

<html>
    <head>
        <title>Xush Kelibsiz your_domain!</title>
    </head>
    <body>
        <h1>Muvaffaqiyatli! your_domain server bloki ishlamoqda!</h1>
    </body>
</html>

Faylni saqlang va yoping, Ctrl+Xchiqish uchun tugmasini bosing, so'ngra saqlash so'ralganda Yva keyin Enter.

Nginx ushbu tarkibga xizmat qilishi uchun to'g'ri ko'rsatmalarga ega server blokini yaratish kerak. Standart konfiguratsiya faylini to'g'ridan-to'g'ri o'zgartirish o'rniga, quyidagi manzilda yangisini yarataylik :/etc/nginx/sites-available/your_domain

$ sudo nano /etc/nginx/sites-available/your_domain

Standartga o'xshash, ammo yangi katalog va domen nomimiz uchun yangilangan quyidagi konfiguratsiya blokiga joylashtiring:

server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your_domain www.your_domain;

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

E'tibor bering, biz rootkonfiguratsiyani yangi katalogimizga va server_namedomen nomimizga yangiladik.

sites-enabledKeyinchalik, faylni ishga tushirish vaqtida Nginx o'qiydigan katalogga havola yaratib, uni yoqaylik:

$ sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Eslatma: Nginx server bloklaringizdan qaysi biri yoqilganligini kuzatish uchun ramziy havolalar yoki symlinks deb ataladigan keng tarqalgan amaliyotdan foydalanadi. Simli bog'lanishni yaratish diskda yorliq yaratishga o'xshaydi, shunda siz uni faollashtirmoqchi bo'lsangiz sites-enabled, server blokini o'chirib qo'ygan holda keyinchalik katalogdan yorliqni o'chirib tashlashingiz mumkin.sites-available

listenEndi ikkita server bloki yoqilgan va ularning va direktivalari asosida soΚ»rovlarga javob berish uchun sozlangan (Nginx ushbu direktivalarni qanday qayta ishlashi haqida bu yerdaserver_name koΚ»proq oΚ»qishingiz mumkin ):

  • your_domainyour_domain: va uchun so'rovlarga javob beradi www.your_domain.

  • default: 80-portdagi boshqa ikkita blokga mos kelmaydigan har qanday so'rovlarga javob beradi.

/etc/nginx/nginx.confQo'shimcha server nomlarini qo'shish natijasida yuzaga kelishi mumkin bo'lgan xash paqir xotirasi muammosini oldini olish uchun faylda bitta qiymatni sozlash kerak . Faylni oching:

$ sudo nano /etc/nginx/nginx.conf

server_names_hash_bucket_sizeDirektivni toping va #chiziqni izohdan chiqarish uchun belgini olib tashlang. CTRLAgar siz nano-dan foydalansangiz, va tugmalarini bosib fayldagi so'zlarni tezda qidirishingiz mumkin w.

Eslatma: Kod satrlarini sharhlash - odatda satrning #boshiga qo'yish - ularni o'chirishni talab qilmasdan o'chirishning yana bir usuli. Ko'pgina konfiguratsiya fayllari faol kod va hujjatlar o'rtasida almashinish orqali ularni yoqish yoki o'chirish uchun sharhlangan bir nechta variantlar bilan birga keladi.

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Ish tugagach, faylni saqlang va yoping.

Keyin, Nginx fayllaringizning hech birida sintaksis xatosi yo'qligiga ishonch hosil qilish uchun sinab ko'ring:

$ sudo nginx -t

Hech qanday muammo bo'lmasa, o'zgartirishlaringizni yoqish uchun Nginx-ni qayta ishga tushiring:

$ sudo systemctl restart nginx

Nginx endi sizning domen nomingizga xizmat qilishi kerak. ga o'tish orqali buni sinab ko'rishingiz mumkin , bu erda siz shunga o'xshash narsani ko'rishingiz kerak:http://your_domain

Nginx endi sizning domen nomingizga xizmat qilishi kerak. ga o'tish orqali buni sinab ko'rishingiz mumkin , bu erda siz shunga o'xshash narsani ko'rishingiz kerak:http://your_domain

6-qadam – Muhim Nginx fayllari va kataloglari bilan tanishish

Endi siz Nginx xizmatini qanday boshqarishni bilganingizdan so'ng, bir necha muhim katalog va fayllar bilan tanishish uchun bir necha daqiqa vaqt ajratishingiz kerak.

Tarkib

  • /var/www/html: Sukut bo'yicha faqat siz ilgari ko'rgan standart Nginx sahifasidan iborat bo'lgan haqiqiy veb-kontent /var/www/htmlkatalogdan tashqarida taqdim etiladi. Buni Nginx konfiguratsiya fayllarini o'zgartirish orqali o'zgartirish mumkin.

Server konfiguratsiyasi

  • /etc/nginx: Nginx konfiguratsiya katalogi. Barcha Nginx konfiguratsiya fayllari shu yerda joylashgan.

  • /etc/nginx/nginx.conf: Asosiy Nginx konfiguratsiya fayli. Bu Nginx global konfiguratsiyasiga o'zgartirish kiritish uchun o'zgartirilishi mumkin.

  • /etc/nginx/sites-available/: Har bir sayt server bloklari saqlanishi mumkin bo'lgan katalog. Nginx ushbu katalogda topilgan konfiguratsiya fayllaridan foydalanmaydi, agar ular katalogga ulanmagan bo'lsa sites-enabled. Odatda, barcha server bloklari konfiguratsiyasi ushbu katalogda amalga oshiriladi va keyin boshqa katalogga ulanish orqali yoqiladi.

  • /etc/nginx/sites-enabled/: Har bir sayt uchun yoqilgan server bloklari saqlanadigan katalog. sites-availableOdatda, ular katalogda joylashgan konfiguratsiya fayllariga ulanish orqali yaratiladi .

  • /etc/nginx/snippets: Ushbu katalog Nginx konfiguratsiyasining boshqa joylariga kiritilishi mumkin bo'lgan konfiguratsiya qismlarini o'z ichiga oladi. Potensial takrorlanadigan konfiguratsiya segmentlari parchalarga qayta ishlash uchun yaxshi nomzodlardir.

Server jurnallari

  • /var/log/nginx/access.log: Veb-serveringizga yuborilgan har bir so'rov, agar Nginx boshqacha qilish uchun sozlanmagan bo'lsa, ushbu jurnal faylida qayd etiladi.

  • /var/log/nginx/error.log: Har qanday Nginx xatolari ushbu jurnalda qayd etiladi.

Xulosa

Endi sizda veb-server o'rnatilgan bo'lsa, sizda xizmat ko'rsatish uchun kontent turi va yanada boyroq tajriba yaratish uchun foydalanmoqchi bo'lgan texnologiyalar uchun ko'plab variantlar mavjud.

Agar siz toΚ»liqroq ilovalar toΚ»plamini yaratmoqchi boΚ»lsangiz , Ubuntu 20.04 da Linux, Nginx, MySQL, PHP (LEMP stek) ni qanday oΚ»rnatish haqida maqolani koΚ»rib chiqing .

Last updated

Was this helpful?