Server Block یک دستورالعمل Nginx است که تنظیمات دامنه خاصی را تعریف می کند و به شما امکان می دهد بیش از یک وب سایت را در یک سرور اجرا کنید. برای هر وب سایت، می توانید site document root (دایرکتوری حاوی فایل های وب سایت) را تنظیم کنید، یک خط مشی امنیتی جداگانه ایجاد کنید، از گواهینامه های SSL مختلف و موارد دیگر استفاده کنید. در این مقاله با ما همراه باشید تا شما عزیزان را با نحوه تنظیم Nginx Server Blocks در CentOS 8 آشنا کنیم.
پیش نازها :
قبل از ادامه این آموزش اطمینان حاصل کنید که شرایط زیر را داشته اید:
در برخی از اسناد، اصطلاح Server Blocks به عنوان virtual host شناخته می شود. virtual host یک اصطلاح Apache است.
root، دایرکتوری است که در آن فایل های وب سایت برای یک نام دامنه ذخیره می شود و در پاسخ به درخواست ها ارائه می شود. root را می توان روی هر مکانی که می خواهید تنظیم کنید. ما از ساختار دایرکتوری زیر استفاده خواهیم کرد:
/var/www/ ├── example.com │ └── public_html ├── example2.com │ └── public_html ├── example3.com │ └── public_html
برای هر دامنه میزبانی شده در سرور، یک دایرکتوری جداگانه در داخل / var / www ایجاد کنید. در دایرکتوری دامنه، ما یک دایرکتوری public_html ایجاد خواهیم کرد که دایرکتوری root دامنه خواهد بود و فایل های وب سایت دامنه را ذخیره می کند. بیایید با ایجاد دایرکتوری root برای دامنه اول، example.com شروع کنیم:
sudo mkdir -p /var/www/example.com/public_html
یک فایل index.html در داخل دایرکتوری root دامنه ایجاد کنید:
sudo nano /var/www/example.com/public_html/index.html
کد زیر را در فایل کپی و جایگذاری کنید:
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Welcome to example.com</title> </head> <body> <h1>Success! example.com home page!</h1> </body> </html>
برای جلوگیری از بروز هرگونه مشکل، مالکیت دایرکتوری root دامنه را به کاربر Nginx تغییر دهید:
sudo chown -R nginx: /var/www/example.com
به طور پیش فرض، در سیستم های CentOS، فایل های کانفیگ Nginx server blocks با .conf پایان می یابد و در دایرکتوری /etc/nginx/conf.d ذخیره می شوند. ویرایشگر متن خود را باز کرده و فایل کانفیگ دامنه را ایجاد کنید:
sudo nano /etc/nginx/conf.d/example.com.conf
فایل کانفیگ را می توان هر چیزی که می خواهید نامگذاری کنید، اما معمولاً بهتر است از نام دامنه استفاده کنید. کد زیر را در فایل کپی و جایگذاری کنید:
server { listen 80; listen [::]:80; root /var/www/example.com/public_html; index index.html; server_name example.com www.example.com; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location / { try_files $uri $uri/ =404; } }
فایل را ذخیره کرده و کانفیگ 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
سرویس Nginx را مجدداً راه اندازی کنید تا تغییرات اعمال شود:
sudo systemctl restart nginx
برای تأیید اینکه server block مطابق انتظار کار می کند، http://example.com را در مرورگر خود باز کنید، چیزی شبیه به تصویر زیر مشاهده خواهید کرد:
ما به شما نحوه تنظیم Nginx Server Blocks و میزبانی چندین دامنه در یک سرور CentOS را نشان دادیم. می توانید مراحل ذکر شده در بالا را تکرار کرده و server blocks دیگری برای تمام دامنه های خود ایجاد کنید.
امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊