در این مقاله ما به غیر فعال کردن Apache، سپس نصب و فعال سازی NGINX در یک سرور جدید خواهیم پرداخت. این کار یک دانش کمی از مدیریت سرور یا حداقل تمایل به یادگیری آن لازم دارد اما نگران نباشید چون ما بطور کامل همه مراحل را برای شما توضیح میدهیم.
توجه: ای مقاله شما را به مهاجرت از Apache به NGINX وادار نمی کند و فقط برای آموزش و راهنمایی برای علاقه مندان ایجاد شده است. لطفا پس از مراحل زیر، بخاطر داشته باشید که Apache شما باید خاموش باشد. انجام این کار بر روی یک سرور با سایت های زنده(در حال اجرا)، سایت ها را تا زمانی که NGINX تنظیم شود، از کار خواهد انداخت.
NGINX چیست؟
NGINX (به نام Engine Ex) برای تولید در سال 2004 منتشر شد و به سرعت تبدیل به یک جایگزین محبوب برای وب سرور سنتی آپاچی شد. NGINX یک طراحی مبتنی بر رویداد است که می تواند از سخت افزار رایانه های امروز بهتر از طراحی فرایند آپاچی استفاده کند.
به همین دلیل، NGINX اغلب به عنوان “سریعتر” جایگزین برای آپاچی دیده می شود، که قادر است با استفاده از منابع کمتر، بار بالاتر از اتصالات همزمان را مدیریت کند.
مقایسه های زیادی بین NGINX و Apache وجود دارد که ما انتخاب و بحث راجب آن را به خود کاربران واگذار می کنیم. اما ما در زیر چند موضوع را برای هر کدام بیان می کنیم تا شما بر اساس نیاز خود NGINX و یا Apache را انتخاب نمایید.
NGINX یا Apache برای شما مناسب است؟
اگر شما…
- استفاده از سرور برای میزبانی یک وب سایت تنها با ترافیک بالا
- با پیکربندی پیشرفته و افزایش توانایی، راحت هستید و مهارت هایی برای انجام این کار دارید
- می خواهید با فریم ورک های جدید توسعه وب کار کنید
- مایل به استفاده از یک جایگزین برای CGI / FastCGI هستید، مانند WSGI
- اگر با تعداد که افزونه ها ، کامپوننت ها و ماژول ها مشکلی ندارید
- اگر با یک پیکربندی پیچیده تر مشکلی ندارید
… NGINX ممکن است برای شما مناسب باشد.
اگر شما …
- اگر از برنامه هایی که با MySQL / PHP سنتی کار می کنند، مانند وردپرس و دروپال سر و کار دارید
- نیاز به میزبانی وب سایت های مختلف با تنظیمات مختلف دارید
- با یک پلت فرم که بسیار شناخته شده و مستند شده است راحت تر هستید
- می خواهید دسترسی زیادی به انواع مختلف از ماژول ها، افزودنی ها و اجزای آن ها داشته باشید
- می خواهید وب سرور شما خارج از چهار چوب کار کند
… بهتر است به استفاده از Apache بچسبید و آن را ول نکنید!
در اینجا یک قاعده خوب به شما میگویم: اگر می خواهید یک سایت را با سرعت رعد و برق در یک پیکربندی پیشرفته اجرا کنید، NGINX احتمالا بهترین گزینه برای سرور شماست. اگر می خواهید سایت های بسیاری را با پیکربندی و انعطاف پذیری آسان اجرا کنید، Apache کار شما را راه می اندازد.
در پایان توضیحات ، NGINX و Apache برای بسیاری از سایت ها مناسب هستند. Apache با تمام توزیع های عمده لینوکس گنجانده شده و نیاز به تنظیمات بسیار کمتری دارد. با این حال، اکثر معیارها NGINX را بنچ مارک ها سریعتر برای وب سیت ها تنظیم کرده اند.
کلام آخر : انتخاب پلت فرم وب سرور کاملا وابسته با آن چیزیست که شما می خواهید بر روی سرور خود پیاده سازی نمایید.
قبل از شروع …
قبل از شروع، بگذارید مطمئن شویم که همه چیزی که نیاز داریم مهیا باشد:
مطمئن شوید که سرور Centos 7 شما فعال می باشد. اگر کار ها و پروژه های شما سبک هستند می توانید از سرور مجازی استفاده نمایید و در صورتی که دارای پردازش های سنگین هستند ، به شما استفاده از یک سرور اختصاصی ایران را توصیه می نماییم.
داشتن یک دامنه ، البته، باید دامنه را به وب سرور NGINX متصل کنیم، بنابراین ما باید یک دامنه برای ادامه کار داشته باشیم. در تمامی مثال ها ، ما از دامنه yourname.com استفاده کرده ایم. هنگام خواندن و اجرا کردن این مقاله، هر جایی که yourname.com را دیدید آن را با دامنه خود جایگزین کنید.
قابلیت اتصال از طریق SSH ، از یک برنامه SSH مانند PuTTY یا PowerShell (برای ویندوز) یا ترمینال (مک) استفاده کنید.
یک پنجره مرورگر به موتور جستجوی خود انتخاب کنید. NGINX دارای موارد بسیار زیادی سفارشی سازی است که شما ممکن است با توجه به نیازتان ، به آنها نیاز داشته باشید.
اگر تمامی موارد بالا مهیا هستند حال به ادامه کار بپردازیم …
مرحله 0: به سرور خود وصل شوید
از طریق SSH به سرور خود وارد شوید و سپس با استفاده از آن به کاربر root دسترسی پیدا کنید:
sudo su –
اختیاری: ویرایشگر متن نانو را نصب کنید.
اگر شما از طرفداران VIM نیستید، ممکن است ویرایشگر نانو را برای کار آسان تر پیدا کنید. اگر آن را در سرور خود نصب نکردید، آن را با استفاده از کد زیر نصب نمایید:
yum install nano
با این ویرایشگر ، ویرایش فایل ها آسان تر خواهد بود.
مرحله 1: Apache را خاموش کنید
بطور پشفرض Apache بر روی هر توضیع لینوکس بصورت بسته های نصبی قرار دارد و در هنگام نصب سیستم عامل نصب می شود.همانطور که در ویندوز شما IIS را بصورت بسته پیشفرض مشاهده می کنید.
از آنجایی که ما یک فضای اختصاصی برای NGINX ایجاد می کنیم، ممکن است پیکربندی Apache موجود در هنگام فعال شدن NGINX مشکلاتی ایجاد کند. بنابراین ما قصد داریم آپاچی را خاموش کنیم، سپس Apache را پیکربندی کنیم تا پس از راه اندازی مجدد سرور Apache شروع به کار نکند.
توجه : خاموش کردن Apache سایت های زنده و فعال روی این وب سرور را پایین می آورد.
حال با کد زیر Apache را متوقف می کنیم:
service httpd stop
حالا ما باید Apache را از چرخه بوت حذف کنیم، به طوری که سعی نکند در طول بوت سرور دوباره راه اندازی شود:
systemctl disable httpd
Apache در حال حاضر به طور کامل خاموش است، و دوباره شروع به کار نخواهد کرد تا زمانی که ما بگوییم.
اگر خریداران سرویس شما از NGINX خوششان نیامد و درخاست تغییر به Apache را داشتن تنها با کد زیر می توانید Apache را دوباره راه اندازی کنید:
systemctl enable httpd
مرحله 2: NGINX را نصب کنید
حالا که Apache را غیر فعال کردیم، می توانیم نصب NGINX را شروع کنیم.
ابتدا ما باید بسته CentOS EPEL را اضافه کنیم تا بتوانیم NGINX را نصب کنیم:
yum install epel-release
اکنون که مخزن ما در سرور نصب شده است، می توانیم از yum برای نصب NGINX استفاده کنیم، کد زیر را وارد نمایید:
yum -y install nginx
شروع NGINX:
service nginx start
اگر پیغام خطا “test failed” را برای nginx.conf مشاهده کردید چه باید کرد؟
شما ممکن است با یک مشکل آدرس آی پی برخورد کنید. به طور پیش فرض NGINX به هر دو نوع آی پی IPv4 و IPv6 گوش می دهد. اگر سرور شما IPv6 را پشتیبانی نمیکند، تست شما با شکست مواجه خواهد شد.
شما می توانید با باز کردن فایل پیکربندی این مشکل را حل کنید:
nano /etc/nginx/nginx.conf
خط زیر را کامنت کنید(غیر فعال):
listen [::]:80 default_server;
بدین صورت آن را غیر فعال کنید:
# listen [::]:80 default_server;
فایل را ببندید و ذخیره کنید، سپس دوباره سرویس را شروع کنید:
service nginx start
حال اگر خطایی را مشاهده نکردید همه چیز برای ادامه نصب مرتب هست.
سرور را برای راه اندازی NGINX با یک ریبوت تنظیم کنید:
systemctl enable nginx
اکنون می توانید صفحه تست NGINX را با رفتن به آدرس IP سرور خود در مرورگر ببینید.
مرحله 3: پیکربندی NGINX برای کار کردن با دامنه شما
ما از شکارچی آپاچی به قایق NGINX سوار شده ایم. اکنون وقت آن است که آن برای دامنه شما کار کند.
اجازه دهید یک دایرکتوری جدید برای DocumentRoot سایت ایجاد کنیم.
اگر میزبان وب سایت های متعدد هستید، یک ایده خوب برای این کار این است که به دنبال یک کنفرانس نامگذاری استاندارد باشید.
ما استاندارد مورد استفاده توسط cPanel، mk را دنبال می کنیم و DocumentRoot ما را بر اساس نام public_html بر می گرداند، حال کد زیر را وارد نمایید:
mkdir -p /var/www/yourdomain.com/public_html
بگذارید یک index.html تست را در این دایرکتوری ایجاد کنیم تا بعدا آن را تست کنیم:
nano /var/www/yourdomain.com/public_html/index.html
حال برای مطمئن شدن از کارکرد درست آن به یک خط ساده نیاز داریم:
Hello world!
فایل index.html را ببندید و ذخیره کنید.
ما باید مجوزهای این پوشه را تنظیم کنیم تا بتوان آن را در دنیای بیرون مشاهده کرد:
chmod 755 /var/www/yourdomain.com/public_html
دایرکتوری ما در حال حاضر راه اندازی شده است، و ما یک index.html تست داریم که منتظر دیده شدن می باشد.
مرحله 4: NGINX را برای تشخیص بلوک های سرور پیکربندی کنید
ما می توانیم با استفاده از میزبان های مجازی میزبان وب سایت های متعدد در یک سرور آپاچی واحد باشیم. این به طور موثر به عنوان دستورالعمل مسیریابی عمل می کند که دامنه را به دایرکتوری مناسب در سرور وصل می کند.
در NGINX، این نوع مسیریابی به جای میزبان مجازی میزبان “بلوک های سرور” است. آنها شبیه به میزبان مجازی هستند، اما فایل پیکربندی آن کمی متفاوت است.
اول، ما باید دایرکتوری های خود را در جایی که بلوک های سرور فعال هستند، تنظیم کنیم.
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
توجه: ما می توانیم به جای ساخت یک ساختار دایرکتوری فایل ، پیکربندی جهانی NGINX – nginx.conf را ویرایش کنیم. با این حال، با تنظیم یک درخت دایرکتوری (همان چیزی است که در توزیعهای لینوکس دبیان مانند اوبونتو انجام می شود)، اگر وب سایت های بیشتری اضافه شود، تنظیمات ساده تر از یک خط می شود.
حالا ما باید به NGINX بگوییم تا از این دایرکتوری ها برای بلوک های سرور استفاده کند. فایل پیکربندی NGINX جهانی را باز کنید:
nano /etc/nginx/nginx.conf
این خطوط را به انتهای http {} بلوک اضافه کنید و سپس فایل را ذخیره کنید:
include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;
عالیه! NGINX اکنون می تواند بلوک سرور را شناسایی کند.
یک فایل جدید به طور خاص برای بلوک سرور برای سایت yourdomain.com ایجاد کنید:
nano /etc/nginx/sites-available/yourdomain.com.conf
ما می خواهیم یک بلوک سرور جدید NGINX را در این فایل قرار دهیم:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
root /var/www/yourdomain.com/public_html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
اجازه دهيد چند بخش مهمی از بلوک سرور را بشکنیم.
server_name : این دامنه ای است که برای سایت خود استفاده می کنید. به جای localhost، از دامنه عمومی و نسخه www دامنه که می خواهید استفاده کنید، بصورت زیر عمل می کنیم:
server_name yourdomain.com www.yourdomain.com;
root : این ریشه برای فایل های سایت است.
root /var/www/yourdomain.com/public_html;
try_files: آنچه که ما در اینجا انجام می دهیم این است که زمانی که یک فایل را یافت نکرد خطای 404 را نمایش دهد.
try_files $uri $uri/ =404;
بلوک سرور خود را با استفاده از این پارامترها ایجاد کنید، سپس ادامه بدهید و فایل را ذخیره و ببندید.
ما نیاز به ایجاد یک لینک نمادین بین سایت های موجود و سایت های فعال داریم:
ln -s /etc/nginx/sites-available/yourdomain.com.conf /etc/nginx/sites-enabled/yourdomain.com.conf
و در نهایت، NGINX را راه اندازی مجدد کنید:
service nginx restart
کار تمام است ! در صورتی که فایل DNS و / یا میزبانی شما برای دامنه شما مشخص شده باشد، اکنون می توانید از طریق مرورگر وب خود به دامنه خود بروید و صفحه HTML تستی که قبلا ایجاد کرده اید را مشاهده کنید.
تبریک می گویم – شما اکنون NGINX را در CentOS 7 فعال کرده اید.
شما با موفقیت آپاچی را در سیستم خود غیر فعال کردید و آن را با وب سرور NGINX جایگزین کردید.
مثل همیشه، به احتمال زیاد شما می خواهید پیکربندی پیشرفته تر را با NGINX انجام دهید تا وب سروری بهینه برای وب سایت خود داشته باشید. ما به شدت بررسی مستندات NGINX را برای هر پیکربندی اضافی که می خواهید در سرور وب انجام دهید توصیه می کنیم.