πUbuntu 20.04 da Nginx qanday o'rnatiladi
// Qo'llanma //
Ma'lumot
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
apt
Nginx 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 apt
aloqamiz 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, apt
Nginx 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.
ufw
Yozish 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.
systemd
Xizmat 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.
5-qadam β Server bloklarini sozlash (tavsiya etiladi)
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/html
katalog 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
$USER
Keyin, atrof- muhit o'zgaruvchisi bilan katalogga egalik huquqini tayinlang :
$ sudo chown -R $USER:$USER /var/www/your_domain/html
umask
Agar 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.html
sahifasini 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+X
chiqish uchun tugmasini bosing, so'ngra saqlash so'ralganda Y
va 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 root
konfiguratsiyani yangi katalogimizga va server_name
domen nomimizga yangiladik.
sites-enabled
Keyinchalik, 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/
listen
Endi 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 beradiwww.your_domain
.default
: 80-portdagi boshqa ikkita blokga mos kelmaydigan har qanday so'rovlarga javob beradi.
/etc/nginx/nginx.conf
Qo'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_size
Direktivni toping va #
chiziqni izohdan chiqarish uchun belgini olib tashlang. CTRL
Agar siz nano-dan foydalansangiz, va tugmalarini bosib fayldagi so'zlarni tezda qidirishingiz mumkin w
.
... 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/html
katalogdan 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'lsasites-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-available
Odatda, 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?