آموزش نصب و پیکربندی Nginx در CentOS 7

آموزش نصب و پیکربندی Nginx در CentOS 7

 

Nginx چیست؟

Nginx جایگزینی برای آپاچی است و یکی از معروف ترین وب سرورها در دنیا تلقی می شود. برعکس آپاچی، Nginx منابع کمتری از بین برده و موجب بهبود پاسخگویی سرور می شود و همین طور طراحی مبتنی بر رویداد آن باعث محبوبیتش شده است.
علاوه بر این، به ادمین اجازه می دهد پیکربندی های advanced را راه اندازی کرده و بتواند با حجم زیادی از اتصالات همزمان سروکار داشته باشد. Nginx جدای مزیت هایش برای یک HTTP وب سرور، به عنوان یک reverse proxy، لود بالانسر و mail سرور استاندارد هم عمل می کند.
در این مقاله به آموزش نصب و پیکربندی Nginx در CentOS 7 خواهیم پرداخت.

 

پیش نیازها:

• یک سرور CentOS یا VM
• دسترسی root
• SELinux

 

آموزش نصب Nginx در CentOS 7

 

روش پیکربندی زیر، مراحل ضروری راه اندازی Nginx در CentOS 7 را با جزئیات کامل توضیح می دهد.
برای دستورالعمل نصب CentOS 8، لطفا نحوه نصب Nginx در CentOS 7 را مطالعه نمایید.

 

مرحله ۱: کلیه مخازن را به روز رسانی کنید.

برای این کار، دستور زیر را اجرا نمایید:

 


 $ sudo yum -y update


 

-y یک پارامتر اختیاری است و از ایجاد سوالات تاییدی جلوگیری می کند. توجه داشته باشید که از آن زیاد استفاده خواهیم کرد. اگر نمی خواهید از این پارامتر استفاده کنید باید دستورها را تایید کنید.

 

مرحله ۲: نصب پکیج های اضافی برای Enterprise Linux (EPEL)

 

Nginx در repository (مخازن) استانداردی که همراه پکیج CentOS می آید قابل دسترسی نیست، بنابراین باید مخزن EPEL را نصب کنیم. استفاده از EPEL رایگان بوده و پکیج های open- source(منبع باز) متعددی برای نصب با Yum در اختیارمان قرار می دهد.

برای نصب EPEL دستور زیر را با استفاده از Yum اجرا کنید:

 


$ sudo yum install -y epel-release


 

نصب پکیج های اضافی برای Enterprise Linux (EPEL)

مرحله ۳: نصب Nginx

نصب Nginx

در مرحله ۲ مخزن Nginx به سرور شما اضافه شد. اکنون می توانید با اجرای دستور yum زیر Nginx را نصب کنید:

 


$ sudo yum –y install nginx


 

 

مرحله ۴: شروع سرویس Nginx

Nginx شما نصب شد اما به طور اتوماتیک شروع به کار نخواهد کرد. برای شروع آن دستور زیر را اجرا کنید:

 


$ sudo systemctl start nginx


 

بعد از زدن enter گرچه Nginx باید شروع به کار کند اما return value دریافت نخواهید کرد. برای چک کردن آن از دستور زیر استفاده کنید:

 


$ sudo systemctl status nginx


 

شروع سرویس Nginx

 

باید یک عبارت سبز رنگی بیاید که نوشته باشد‘active (running) ’ . اگر نیامد یعنی نمونه Nginx شما به درستی استارت نشده است.

 

توجه: اگر آپاچی سرور اجرا شده دارید باید آن را قبل از استارت کردن Nginx غیرفعال کنید. برای این کار از دستور sudo service httpd stop استفاده کنید. حواستان باشد که غیر فعال کردن آپاچی، هر وب سایت جدیدی که اجرا شده است را به هم می زند.

اکنون آپاچی را غیرفعال کردید اما شاید همچنان حین reboot کردن سرور به طور اتوماتیک استارت شود. برای غیرفعال کردن استارت اتوماتیک، دستور زیر را اجرا کنید:

 


 $ sudo systemctl disable httpd


 

مرحله ۵: پیکربندی Nginx برای استارت شدن در Boot

 

اکثر ادمین ها می خواهند مطمئن شوند هر وقت سرور restart می شود، Nginx به طور اتوماتیک استارت خواهد شد. برای این کار دستور زیر را انجام دهید:

 


$ sudo systemctl enable nginx


مرحله ۶: پیکربندی Firewall جهت انجام Traffic

 

centOS 7 به طور پیش فرض Firewallها را فعال و دسترسی به پورت های ۸۰ و ۴۴۳ را مسدود می کند. در واقع هر HTTP داخلی و HTTP packet را از Nginx مسدود خواهد کرد.

برای مجوز دادن به HTTP و HTTP traffic از دستورهای زیر استفاده کنید:

 


firewall-cmd –zone=public –permanent –add-service=http

firewall-cmd –zone=public –permanent –add-service=https

firewall-cmd –reload


 

بعد از هر دستور باید عبارت success را ببینید که نشان می دهد دستور به درستی اجرا شده است.

 

پیکربندی Firewall جهت انجام Traffic

 

مرحله ۷: اثبات نصب Nginx

 

ساده ترین روش برای این که بفهمیم Nginx به درستی اجرا شده یا نه این است که نگاهی به IP آدرس عمومی سرور خود بیاندازیم. فقط کافی است مرورگر خود را باز کرده و سایت http://server_IP_or_domain_name/ ببینید.

ابتدا IP آدرس عمومی سرور خود را پیدا کنید.

 


$ ip a


 

IP آدرس عمومی سرور

 

 

IP آدرس ما این است ۱۹۲.۱۶۸.۱۲۲.۱/۲۴. IP آدرس خود را کپی و در مرورگر paste کنید. باید صفحه Welcome to Nginx ظاهر شود.

 

ورود به NGINEX

 

آموزش رفع خطای ‘test failed’

 

اگر یک پیام حاوی ‘test failed’ error درفایل nginx.conf دریافت کردید احتمالا به مشکل IP آدرس برخوردید.
Nginx سرویس به طور پیش فرض تحت فرمان IPv4 و IPv6 است. اگر سرور شما از IPv6 پشتیبانی نکند، تست fail خواهد شد. با این وجود می توان این مشکل را با تغییر دادن فایل پیکربندی اصلی درست کرد.

فایل پیکربندی اصلی /etc/nginx/nginx.conf را باز کنید. خط زیر را پیدا کنید:

 


listen [::]:80 default_server;


 

فقط ‘#’ را در ابتدای خط اضافه کنید. مطابق زیر:

 


# listen [::]:80 default_server;


 

تغییراتی که انجام دادید را save کرده و Nginx سرویس را reload کنید.

 


 $ sudo systemctl reload nginx


 

در مرورگر، IP آدرس سرور خود را Browse کنید. باید صفحه پیش فرض Nginx test را ببینید.

 

پیکربندی فایل ها و Root کردن Nginx

به طور حتم باید محل قرارگیری فایل های پیکربندی Nginx و root directory پیش فرض Nginx سرور را بدانید.

 

Server Blocks‌ Additional

ادمین ها در آپاچی، برای اجرای چندین وب سایت از host های مجازی استفاده می کنند. در حالی که در Nginx، اجرای چند وب سایت در یک سرور با server blocks صورت می گیرد.

Server blocks Additional با درست کردن فایل های پیکربندی جدید با پسوند فایل .conf به وجود آمده اند. این فایل ها را در /etc/nginx/conf.d قرار بدهید تا هر زمان که Nginx شروع به کار کرد بارگیری شوند.

 

Root کردنNginx سرور به صورت پیش فرض

 

Root کردنNginx سرور به طور پیش فرض به این صورت است /usr/share/nginx که در فایل پیکربندی server block پیش فرض که در /etc/nginx/conf.d/default.conf قرار دارد به طور کامل مشخص شده است.

root directory document پیش فرض که شامل وب فایل ها می شود به این صورت است usr/share/nginx/html.

 

مدیریت Nginx – دستورهای رایج

متوقف کردن Nginx

برای متوقف کردن Nginx سرور از دستور زیر استفاده کنید:

 


$ sudo systemctl stop nginx


 

Restart کردن Nginx

برای Restart کردن Nginx سرویس طبق دستور زیر پیش بروید:

 


$ sudo systemctl restart nginx


 

Reload کردن Nginx

اگر شما تغییری در پیکربندی اصلی Nginx ایجاد کردید باید سرور را reload کرده تا تغییرات انجام پذیرند.

 


sudo systemctl reload nginx $


 

غیرفعال کردن شروع اتوماتیک در Boot

اگر نمی خواهید Nginx به طور اتوماتیک در ‌Boot استارت شود، دستور زیر را اجرا کنید:

 


$ sudo systemctl disable nginx


 

پیکربندی یک directory جدید

اگر شما چندین وب سایت را میزبانی می کنید بهترین کار این است که طبق نام گذاری استاندارد پیش بروید.

 


$ sudo mkdir -p /var/www/yourdomain.com/public_html


 

سپس به یک صفحه index نیاز داریم. دستور زیر به شما کمک می کند تا پیکربندی را تست کنید.

 


 $ sudo nano /var/www/yourdomain.com/public_html/index.html $


 

برای تست کردن یک خط از متن را در index.html وارد کنید. سپس فایل را save کرده و ببندید.

با تغییر دادن مجوزهای فایل Linux، می توانید به صورت آنلاین به اطلاعات دسترسی یابید.

 


sudo chmod 755 /var/www/yourdomain.com/public_html $


 

صفحه index.html را باز کنید. این صفحه باید به صورت آنلاین در دسترس باشد.

 

درآخر

بعد از نصب موفقیت آمیز Nginx در CentOS 7، گزینه های زیادی برای نصب کامل LEMP که جاگزین شناخته شده ای برای LAMP stack هست پدیدار می شود. LEMP یک عبارت اختصاری است که هر کدام از حروف آن برای یک مولف کدباز به کار می رود.

• L – به جای Linux OS
• E – به جای Nginx (اگر آن را به صورت ‘engine x’ تلفظ کنیم)
• M – به جای MySQL یا سیستم مدیریت داده های پیوندی MariaDB
• P – به جای PHP

هر کدام از اینها بر روی دیگری می نشینند. Linux OS در لایه اصلی قرار می گیرد.

شرکت صفرویک دارای مجوز Servco به شماره 20-95-100 از سازمان تنظیم مقررات و ارتباطات رادیویی