Nginx یک وب سرور کدباز و رایگانی است که وظیفه ارسال صفحات وب به اینترنت را دارد. در واقع می توان به وسیله آن صفحات ایستا (static) یا پویا (dynamic) که توسط PHP تولید شده اند را ارسال کرد. دلیل شهرت Nginx، عملکرد بالای HTTP و HTTPS و سرور پروکسی معکوس آن است. این سرور پیکربندی ساده ای داشته و از منابع کمی استفاده می کند بنابراین بهترین جایگزین برای آپاچی به شمار می رود.
نصب و پیکربندی Nginx بر روی سرور Ubuntu 18.04
روش نصب Nginx روی Ubuntu 18.04به صورت زیر است:
1: به روز رسانی سیستم با استفاده از دستور apt
2: نصب Nginx با استفاده از دستور apt install nginx
3: پیکربندی سرور Nginx
4: فعال کردن Nginx و ری استارت کردن آن
اجازه دهید تمام مراحل بالا را با جزییات کامل نشان دهیم.
مرحله 1: ورود به سرور با استفاده از دستور ssh
ابتدا از طریق دستور ssh وارد سرور خود شوید:
$ ssh user@server
$ ssh vivek@server1.cyberciti.biz
مرحله2: پیدا کردن IP آدرس سرور لینوکس در Ubuntu
دستور IP زیر را وارد کنید:
$ ip show
$ ip addr show
IP آدرس 10.105.28.46 را یادداشت کنید. ممکن است آدرس IPv4 عمومی داشته باشید که همه اینها بستگی به setup شما دارد.
مرحله 3: نصب Nginx روی Ubuntu 18.04
برای نصب آپدیت های امنیتی روی Ubuntu 18.04، دستور apt زیر را اجرا کنید:
$ sudo apt update
$ sudo apt upgrade
خروجی آن به این صورت خواهد بود:
Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Fetched 252 kB in 1s (503 kB/s)
Reading package lists… Done
Building dependency tree
Reading state information… Done
All packages are up to date.
در آخر، وب سرور Nginx را به این صورت نصب می کنیم:
$ sudo apt install nginx
مرحله 4: اجرای دستورهای start/stop/restart سرور Nginx روی Ubuntu
در زمان بوت شدن سرور با استفاده از دستور زیر Nginx را فعال کنید:
$ sudo systemctl enable nginx
سرور را با دستور زیر استارت کنید:
$ sudo systemctl start nginx
به وسیله دستور زیر آن را ری استارت کنید:
$ sudo systemctl restart nginx
متوقف کردن Nginx به صورت زیر است:
$ sudo systemctl stop nginx
بارگذاری مجدد Nginx با دستور زیر قابل اجراست:
$ sudo systemctl reload nginx
برای فهمیدن وضعیت Nginx از دستور زیر استفاده کنید:
$ sudo systemctl status nginx
مرحله 5: باز کردن پورت 80 و 443 با استفاده از دستور UFW (پیکربندی firewall)
UFW (مخفف uncomplicated firewall) به معنای فایروال بدون پیچیدگی است. که برای مدیریت فایروال لینوکس استفاده شده و هدفش ایجاد یک رابط ساده برای کاربر است. برای باز کردن پورت 80 (HTTP) و 443 (HTTPS) دستور زیر را اجرا نمایید:
$ sudo ufw allow https comment ‘Open all to access Nginx port 443’
$ sudo ufw allow http comment ‘Open access Nginx port 80’
$ sudo ufw allow ssh comment ‘Open access OpenSSH port 22’
$ sudo ufw enable
سپس وضعیت فایروال را بررسی کنید:
$ sudo ufw status
مرحله 6: بررسی عملکرد Nginx در Ubuntu 18.04
وب سرور شما در حال اجراست. اکنون نوبت تست کردن آن است. با استفاده ازIP آدرس موجود در مرحله 2، یک مرورگر باز کرده و URL زیر را داخل آن وارد کنید:
http://10.105.28.46/
یا از IP آدرس عمومی استفاده کنید:
http://104.200.23.232/
صفحه پیش فرض بالا بیانگر این است که سرور Nginx و Ubuntu به درستی روی سیستم نصب شده است.
مرحله 7: پیکربندی Nginx
بگذارید دامنه عمومی خودمان را ( cms.cyberciti.biz یا www.cyberciti.biz و …) توسط یک دایرکتوری راه اندازی کنیم.
ساخت یک کاربر به منظور ذخیره کردن صفحات وب
با استفاده از دستور useradd، یک کاربر جدید با نام www-pubcms اضافه کنید:
$ sudo useradd -s /usr/sbin/nologin -m -d /home/lighttpd/ -c ‘cms.cyberciti.biz user’ www-pubcms
سپس آن را با دستور passwd رمزگذاری کنید:
$ sudo passwd -l www-pubcms
passwd: password expiry information changed.
ساخت دایرکتوری برای ذخیره سازی صفحات وب با استفاده از دستور mkdir
به این صورت است:
$ sudo mkdir -v /home/lighttpd/http/
ساخت یک نمونه صفحه وب جدید
با استفاده از ویرایشگر متنی دستور nano یا vim را اجرا کنید:
$ sudo nano /home/lighttpd/http/index.html
یا
$ sudo vim /home/lighttpd/http/index.html
کد HTML زیر را ضمیمه کنید:
<html>
<head>
<title>CMS.CYBERCITI.BIZ</title>
</head>
<body>
<h1>Welcome</h1>
This is a test page for cms.cyberciti.biz.
<hr>
<small>Powered by Nginx and Ubuntu 18.04 LTS</small>
</body>
</html>
سپس مجوز لازم را تعیین کنید:
$ sudo chown -vR www-pubcms:www-pubcms /home/lighttpd/
پیکربندی دامنه مجازی برای cms.cyberciti.biz
دستورهای زیر را وارد نمایید:
$ sudo vim /etc/nginx/sites-available/http.cms.cyberciti.biz.conf
یا
$ sudo nano /etc/nginx/sites-available/http.cms.cyberciti.biz.conf
سپس پیکربندی را ضمیمه کنید:
our first viraul host cms.cyberciti.biz
server {
listen 80; # port
server_name cms.cyberciti.biz; # dns server name
# log files
access_log /var/log/nginx/cms.cyberciti.biz_access.log;
error_log /var/log/nginx/cms.cyberciti.biz_error.lg;
# document root where files stores for cms.cyberciti.biz domain
root /home/lighttpd/http;
index index.html index.htm;
}
سپس فایل را ذخیره کرده و ببندید. با استفاده از دستور ln، یک لینک جدید در دایرکتوری sites-enabled ساخته تا دامنه cms.cyberciti.biz فعال شود:
$ cd /etc/nginx/sites-enabled/
$ sudo ln -v -s /etc/nginx/sites-available/http.cms.cyberciti.biz.conf .
تست و بارگذاری مجدد سرور Nginx
برای تست کردن از دستور زیر استفاده کنید:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
برای بارگذاری مجدد سرور از دستور زیر استفاده کنید:
$ sudo systemctl reload nginx
مطمئن شوید که نام دامنه (مثلا 104.200.23.232 ) را با دقت وارد IP آدرس عمومی کردید. می توانید با استفاده از دستورhost یا dig یک رکورد برای cms.cyberciti.biz بسازید:
$ host cms.cyberciti.biz
cms.cyberciti.biz has address 104.200.23.232
cms.cyberciti.biz has IPv6 address 2600:3c00:1::68c8:17e8
نام دامنه را در مرورگر خود وارد کنید:
http://cms.cyberciti.biz/
وارد کردن لاگ فایل های Nginx
• /var/log/nginx/ : لاگ فایل های Nginx را نشان می دهد.
• /etc/nginx/ : دایرکتوری فایل های پیکربندی Nginx است. همه فایل های پیکربندی فعال شده در این /etc/nginx/sites-enabled/ وجود دارند که از دایرکتوری /etc/nginx/sites-enabled/ لینک شده اند.
• /etc/nginx/nginx.conf : فایل اصلی تنظیمات است.
با استفاده از دستورهای tail، more، grep و cat می توان به لاگ فایل های سرور دست یافت:
$ tail -f /var/log/nginx/access.log
$ more /var/log/nginx/error.log
$ grep ‘something’ /var/log/nginx/cms.cyberciti.biz_access.log
$ cat /var/log/nginx/cms.cyberciti.biz_access.log
با چک کردن لاگ فایل ها مطمئن شوید که همه چیز در تمام دامنه ها به درستی عمل می کند.
با استفاده از دستور ss یا netstat از باز بودن پورت ها در Ubuntu مطمئن شوید:
$ ss -tulpn
$ ss -tulpn | grep :80
$ netstat -tulpn
جمع بندی
اکنون نصب و پیکربندی Nginx روی سرور Ubuntu 18.04 به درستی انجام شد. در قسمت دوم این مجموعه، پیکربندی سرورHTTPS ( مجوزهای SSL/TLS ) برای انجام اقدامات امنیتی را آموزش خواهیم داد. جهت کسب اطلاعات بیشتر به این صفحه مراجعه کنید.