پێڕست : ماڵەوە  »  ڕاژە   »   دامەزراندنی ڕاژەی Nginx لەسەر ئوبونتوی۱۸.۰۴

پێناسە:
Nginx یەکێک لە سیستەمەکانی خزمەتگوزاری ڕاژەی وێب لە جیهانە کە بۆ ئەو ماڵپەڕانە کە ترافێکی زۆریان بە سەرەوەیە بەکار دێ.هاورێیەتیێکی باشی لەگەڵ خزمەتگوزاری Apache هەیە و زۆر جار بە جیاتی ڕاژەی وێب یان پرۆکسی پێچەوانە(reverse proxy) بەکاردەبرێ.
لەم نووسینە ئێمە باسێک لە سەر دامەزراندنی Nginx لە سەر ڕاژەی ئوبونتوی۱۸.۰۴ دەکەین.
پێداویستی:
دامەزراندنی ڕاژەیێک ، دەتوانێ سوود لە ڕاژەی خەیاڵێ(VPS) یان ڕاستەقینە (Dedicated Servers)بگرن.دەستپێگەیشتنیroot بە ڕاژە یا سێرڤێرەکەتان پێویستە.
قۆناغی یەکەم :دامەزراندنی Nginx :
بە هۆی ئەوە Nginx لە نێو کانگاکانی(repositories) ئوبونتو بوونی هەیە.ئێمە دەتوانین بە فەرمانی دامەزراندن لەسەر پاکەتی سیستەمی apt کردار ئەنجام بدەین.سەرەتا کانگاکانی سیستەم بەڕۆژ دەکینەوە ئینجا دەست دەکەین بە دامەزراندنی Nginx .

    sudo apt update
    sudo apt install nginx

پاش ئەمە، سیستەمی نەرمەکالای apt، بەشێک لە پێداویستیەکانی راژەی Nginx خۆکارانە دادەمەرزێنێ.
قۆناغی دووهەم: ڕێکخستنی دیواری ئاگر(Firewall):
پێش دامەزراندنی Nginx، فایرواڵەکەتان دەبێ ڕێ بدا بە ئیشەکانی ئەم خزمەتگوزارییە.Nginx لە کاتی دامەزراندن خۆی بە عینوان خزمەتگوزاریێک، دەناسێنێ بە ufw کە ئەم دیواری ئاگرەش بە سادەیی ڕێ بە چالاک بوونی Nginx دەدا.
پێرستی ئەو ئەپانە یان نەرمەواڵانە کە رێکخراوەن لە ufw بەم فەرمانە سادە نیشان دەدرێ:

sudo ufw app list

دەرئەنجامی فەرمانەکەی سەرەوە بەم شێوەیە :

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

ئەم پرۆفایلە بەم جۆرە شڕۆفە دەکرێ :
Nginx Full:واتە لە سەر دوو دەرگا یان پۆرتی ۸۰ (ترافیکی وێب بێ نهێنیکردن)و ۴۴۳ (ترافیکی وێب بە نهێنیکردن)کراوەیە.
Nginx HTTP: ئەم پرۆفایلە تەنها بۆ دەرگای ۸۰یە. (normal, unencrypted web traffic)
Nginx HTTPS:ئەم پرۆفایلە تەنها بۆ کردنەوەی دەرگای۴۴۳ یە. (TLS/SSL encrypted traffic)
گەر دەرگاکانتان نهێنی کردووە باش وایە ڕێ بە پۆرتی ۸۰ نەدەن.گەر نە ! و بە شێوازی نهێنیکردن پۆرتەکان ئامادەیە سوود لە پۆرتی ۴۴۳ بگرن بۆ ئاسایشی فرەتر(SSL).
ئێستا ئێمە هێشتا پۆرتی SSLـمان ئامادە نییەو سوود لە دەرگای ۸۰ دەگرین.بەم فەرمانەی خوارەە :

sudo ufw allow 'Nginx HTTP'

ئێوە دەتوانن ئەم هەڵبژاردەی دەرگاکان، بە فەرمانی خوارەوە پەسەند بکەن:

sudo ufw status

ئێستا ترافیک لە سەر دەرگای HTTP دەبینن :

Status: active

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

قۆناغی سێهەم:پشکنینی ڕاژە:
پاش تەواو بوونی قۆناغەکان دامەزراندن،ئوبونتو ۱۸.۰۴(Ubuntu 18.04)دەستدەکا بە ئیشپێکردنیNginx و ئێستا ڕاژە ئامادەیە بۆ وەگڕخستن.ئێستا ئێمە پشکنین دەکەنی بە systemd بۆ دڵنیابوون لە توانایی چالاک بوونی ڕاژەکەمان:

systemctl status nginx
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 2018-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

لە دەرەنجامی سەرەوە ئێوە دەبینن کە سیستەم بە سەرکەوتوویی دامەزراوە.هەرچەندە کە باشترین کات بۆ تاقیکردنەوە ئەوەیە کە پەڕەیێکی داواکاری بۆ Nginx بنێرێ.
ئێوە دەتوانن بۆ پەڕەی پێشگریمانی Nginx بڕۆن بە ناسینی ئای پی ڕاژەکەتان وە Nginx چالاک بێت.ئایپی ڕاژە لەکاتی دامەزراندنی سیستەمی کارپێکردنەکەتان بۆتان ناردراوە.
ئێستا ئای پیەکەتان لە وێبگەڕێک بنووسن:

http://your_server_ip

ئێوە دەبێ پەڕەی پێش گریمان Nginx ببینن :

ئەم پەڕە پێتان دەڵێ کە ڕاژەی Nginx بە سەرکەوتووی خەریک ئیشکردنە.
قۆناغی چوارەم :ڕێکخستنەی پرۆسەکانی ڕاژەی Nginx
ئیستا کە ڕاژەکەتان چالاک و ئێشدەکا بێڵن چەند فەرمانی بەڕێوەبردن فێر ببین.
بۆ وێستانن یان ناچالاککردنی ڕاژە:

sudo systemctl stop nginx

پاش وێستانن بۆ چالاککردنی ڕاژە:

sudo systemctl start nginx

بۆ وەگڕخستنەوەی ڕاژە:

sudo systemctl restart nginx

بۆ بارکردنەوە (reload)کاتێک کانفیگێکی ڕاژە دەگۆڕن بێ ئەوە کە خزمەتگوزاریەکان بوێستێنن :

sudo systemctl reload nginx

کاتێک سیستەمی وەگڕخەر بووت بێتەوە ،Nginx بە شێوازی خۆکارانە چالاک دەبێ گەر گەرەکتانە وا نەبێ:

sudo systemctl disable nginx

بۆ چالاککردنی خۆکارانە لە کاتی بووتی سیستەمی وەگڕخەر:

sudo systemctl enable nginx

قۆناغی پێنجم :دامەزراندنی چەندین دۆمەین
کاتێک لە ڕاژەی Nginx سوود دەگرن دەتوانین بلۆکەکان(وەک ڕاژەکانی خەیاڵی لە Apache ) بۆ کانفیگ کردنی ووردەکاری و دانانی چەندین دۆمەین لە سەر ڕاژەیێک بەهرە ببەین.ئێمە لێرە بۆ نمونە لە دۆمەینێک کە ناومان ناوە example.com سوود دەگرین.بەڵام ئێوە دەبێ بیگۆڕن بە ناوی دۆمەینی خۆتان.
Nginx لە سەر ئوبونتوی۱۸.۰۴ یەک بلۆکی هەیە یان لە یەک دایرێکتۆری(بۆخچە) بە شێوازی پێشگریمان درووست دەکرێ لە لە مەسیری var/www/html/ دەتوانین بیبینین.بەڵام ئەمە تەنها بە باشی بۆ یەک ماڵپەڕ ئیشدەکا.ئەمەش ئەتوانێ شۆکێک بێ بۆ ڕاژەیێک کە چەندین ماڵپەڕی لە سەرە.ئێمە لەم فێرکارییە کە بۆ یەک ماڵپەرە دەیگۆڕین بە چەندین ماڵپەڕ کە دەتوانین دایمەزرێنین.
سەرەتا لەم مەسیرە var/www/ دایکێکتۆریێک بە ناوی example.com درووستدەکەین.بە فەرمانەکەی خوارەوە و بە سویچی p- کە پێداویستیەکانی بۆ دایرێکتۆرێکی باوک یا باوان(parent) ڕێکدەخات.

sudo mkdir -p /var/www/example.com/html

ئێستا خاوەنیایەتی ئەم دایریکتۆرییە کە دروستمانکرد دەبێ بۆ USER$ بیگۆڕین بەم شێوازە:

sudo chown -R $USER:$USER /var/www/example.com/html

مۆڵەتدانەکانی(permissions) ڕووتەکان بە درووستی دابینکراوە بەڵام گەر گۆڕانکارییەکەتان لە umask نەکردووە دەتوانن بەم فەرمان دڵنیابن لە مۆڵەتدانەکان:

sudo chmod -R 755 /var/www/example.com

ئێستا فایلێکی index.html بە یارمەتی دەستکاری کەریnano دروستدەکەین .مەرج نییە هەر ئەم دەستکاریکەرە بێ گرینگ دروستکردنی ئەو فایلەیە.

nano /var/www/example.com/html/index.html

ئێستا ئەم کۆدە سادەیHTMLی تێدا دەخزێنین :

[php]
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
[/php]

پاشکەوتی بکەن و بێنەوەدەرەوە .
ئێستا ئەو بلۆکە (example.com) کە درووستمانکردوە کانفیگێکی ڕاستەو خۆی بۆ ئەکەین.
دەچینە ئەم مەسیرە

sudo nano /etc/nginx/sites-available/example.com

ئەم کانفیگەی لە بە شێوازی پێشگریمان بوو بیگۆڕن بەمە و تێدای بنووسن بەم شێوە:

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

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

        server_name example.com www.example.com;

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

زۆر جوانە ئێمە کانفیگی پێشگریمانمان بەڕۆژ کردوە بۆ دایریکتۆری نوێکەمان.server_name ناوی دۆمەینەکەمانە.
ئێستا دەبێ ماڵپەڕەکەمان بە لینکێک sites-enabled بناسێنین بە Nginx کاتێک کە چالاک دەبێ و دەیخوینێتەوە لە کاتی دەستبەکاربوون.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

پیرۆزە دوو بلۆکمان لە سەر Nginx دامەزراند:
example.com : پاڵپشتی لە داواکاریکان دەکا بۆ example.com وە www.example.com.
default:وڵامی هەر داواکارێکی لە دەرگای 80 کە هاوشێوەی دوو بلۆکەکەی دیکە نین.
بۆ بەرگیری لە هەسکردنی بیرگە()لە زیادکردنی ناوی ڕاژە .دەبی لەم مەسیرە/etc/nginx/nginx.conf / ڕیکخستنێک بکەین.

sudo nano /etc/nginx/nginx.conf

ئەم ڕەستە server_names_hash_bucket_size پەیدا دەکین ئینجا هێماک # لە پشتی دەسڕینەوە.

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

بۆ نیشاندانی هەڵی ڕەستە کۆدەکان(syntax) ئەم فەرمانە بەکار دەبەین:

sudo nginx -t

ئێستا پاسکەوتی دەکەین و دەینەدەرەوە.
گەر کێشەیێکمان نییە ڕاژەی Nginx دوبارە وەگڕدەخەینەوە بەم فەرمانە :

sudo systemctl restart nginx

ئیستا ڕاژەکەمان لە سەر ئەم دۆمەینەیە http://example.com (ئەڵبەت ئێوە دۆمەینی خۆتان هەیە کە کانفیگتان کردووە )

قۆناغی شەشەم :فایل و دایریکتۆرییە گرینگەکان لە Nginx
ناوەڕۆک
مەسیری /var/www/html/ کە بە شێوازی پێشگریمان بۆ دانانی فایل و وێب سکریپتەکەتان دانراوە.بەڵآم هەروا کە لە پێشتر باسمان کرد بیگۆڕی.
کانفیگگی ڕاژە :
/etc/nginx:/ تەواو کانفیگەکانی ڕاژەی Nginx لێرەن.
/etc/nginx/nginx.conf/ ئەم فایلە کانفیگی گشتی تێدایەو دەتوانی بیگۆڕی.
/etc/nginx/sites-available/ئەم دایرێکتۆرییە بلۆکی ماڵپەڕەکانی تێدایە واتەNginx ناتوانێت هیچ ڕاژەی ماڵپەڕێک ناناسێت تاکوو بەم بلووکانە نەیناسی کە پێشتر گووتمان.
لاگی ڕاژە :
/var/log/nginx/access.log/ تەواو داواکاریەکانی ڕاژەی وێب لێرە پاشکەوت دەکرێن.
/var/log/nginx/error.log/ تەواو هەڵەکانی ڕاژەیNginx لێرە تۆمار دەکرێت.
سەرکەوتوو بن. ؛)
سەرچاوە