آموزش نصب وب سرور Nginx بر روی سیستم عامل CentOS

 انجین ایکس ( Nginx ) یکی از وب سرور هایی است که به تازگی بسیاری از مدیران سایت های پربازدید را به سوی خود جلب نموده است. انجین ایکس علاوه بر وب سرور، ریورس پراکسی سرور ( reverse proxy server ) و میل پراکسی سرور ( mail proxy server ) نیز می باشد که  بصورت متن باز ( open source ) ارائه شده است و از پروتکل های http , https , SMTP , POP3 و IMAP پشتیبانی می کند. انجین ایکس به گونه ای طراحی شده است که همزمان با پشتیبانی از تعداد کانکشن های بسیار بالا ، عملکرد مناسب و مصرف کم رم را به همراه داشته باشد. این وب سرور محبوب بر روی سیستم عامل های مختلفی از جمله لینوکس ، mac os و سولاریس قابل نصب می باشد. nginx توسط ایگور سیسویو ( igor sysoev ) ساخته شده است، ایگور در سال 1970 در شهر آلماتی قزاقستان به دنیا آمده است و فارغ التحصیل دانشگاه ایالتی مسکو می باشد.

کار ساخت nginx از سال 2002 آغاز گردید و اولین نسخه آن در سال 2004 منتشر گردید. در حال حاضر نزدیک به 12 درصد وب سایت های جهان یعنی چیزی در حدود 22 میلیون وب سایت از nginx به عنوان وب سرور خود استفاده می کنند.

چگونه وب سرور Nginx را بر روی سرور لینوکس خود نصب نمائیم؟

خوشبختانه مدتی است که nginx پکیج باینری آن را از طریق ریپازیتوری nginx ارائه نموده است که این مهم نصب آن را بسیار تسهیل می نماید. در ادامه مراحل نصب آن را مرور می نمائیم:

– مرحل اول: نصب nginx repo

ابتدا دستور زیر را وارد نمائید:

cd /tmp

اگر از نسخه centos 6 استفاده می کنید، دستورات زیر را وارد نمائید:

# wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm

 – مرحله دوم: نصب وب سرور nginx

پس از نصب ریپو می توانید به کمک دستور زیر nginx را نصب نمائید:

yum install nginx

احتمالا خروجی زیر را بر روی کنسول دریافت خواهید کرد:

Loaded plugins: product-id, rhnplugin, security, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
nginx                                                    | 1.3 kB     00:00
nginx/primary                                            | 4.8 kB     00:00
nginx                                                                     33/33
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 0:1.2.6-1.el6.ngx will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
================================================================================
 Package        Arch            Version                    Repository      Size
================================================================================
Installing:
 nginx          x86_64          1.2.6-1.el6.ngx            nginx          361 k
 
Transaction Summary
================================================================================
Install       1 Package(s)
 
Total download size: 361 k
Installed size: 835 k
Is this ok [y/N]: y
Downloading Packages:
nginx-1.2.6-1.el6.ngx.x86_64.rpm                         | 361 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : nginx-1.2.6-1.el6.ngx.x86_64                                 1/1
----------------------------------------------------------------------
 
Thanks for using NGINX!
 
Check out our community web site:
* http://nginx.org/en/support.html
 
If you have questions about commercial support for NGINX please visit:
* http://www.nginx.com/support.html
 
----------------------------------------------------------------------
Installed products updated.
  Verifying  : nginx-1.2.6-1.el6.ngx.x86_64                                 1/1
 
Installed:
  nginx.x86_64 0:1.2.6-1.el6.ngx
 
Complete!

– مرحله سوم : راه اندازی وب سرور

در این مرحله می بایست به کمک دستور زیر وب سرور را فعال نمائید:

# chkconfig nginx on

از دستورات زیر نیز می توانید برای متوقف کردن ، فعال کردن مجدد و یا مشاهده وضعیت آن استفاده فرمائید:

# service nginx start
# service nginx stop
# service nginx restart
# service nginx status
# service nginx reload

– مرحه چهارم : کانفیگ وب سرور

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

Default configuration directory: /etc/nginx/
Default SSL and vhost config directory: /etc/nginx/conf.d/
Default log file directory: /var/log/nginx/
Default document root directory: /usr/share/nginx/html
Default configuration file: /etc/nginx/nginx.conf
Default server access log file: /var/log/nginx/access.log
Default server access log file: /var/log/nginx/error.log

دستور زیر را برای ویرایش تنظیمات وب سرور وارد نمائید:

# vi /etc/nginx/nginx.conf

تعداد پردازشگر را اصلاح نموده و gzip را فعال نمائید:

worker_processes  2;
gzip  on;

فایل را بسته و فایل زیر را باز نمائید:

# vi /etc/nginx/conf.d/default.conf

نام سرور ، ای پی و پورت tcp را تنظیم نمائید:

listen       202.54.1.1.1:80;
server_name  www.daryaserver.com

فایل را بسته و دستور زیر را اجرا نمائید:

service nginx start

به کمک دستورات زیر بررسی کنید که آیا nginx بدرستی عمل می کند یا خیر:

# netstat -tulpn | grep :80
# ps aux | grep nginx

– مرحله پنجم : تنظیمات فایروال

فایل iptables را باز نمائید:

vi /etc/sysconfig/iptables

برای بازنمودن پورت 80 خط زیر را قبل از LOG انتهایی و خط DROP مربوط به INPUT chain قرار دهید:

-A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT

دستور زیر را وارد نمائید:

service iptables restart

– نصب nginx بر روی دایرکت ادمین ( Directadmin ) :

اگر بر روی سرور خود دایرکت ادمین را نصب نموده اید و می خواهید از وب سرور انجین ایکس استفاده کنید، پس از اتصال به کنسول به مسیر زیر مراجعه نمائید:

# cd /usr/local/directadmin/

در اینجا می بایست نسخه 2 custombuild دایرکت ادمین را نصب کنید که البته از آنجایی که نسخه پایدار نمی باشد، ممکن است مشکلاتی را نیز به همراه داشته باشد، در صورت تمایل می توانید مراحل زیر را اجرا نمائید:

mv custombuild custombuild-01
wget http://files.directadmin.com/services/custombuild/2.0/custombuild.tar.gz
tar xvzf custombuild.tar.gz
cd custombuild
./build

حال با وارد کردن دستور زیر می توانید ویرایش custombuild را ملاحظه نمائید:

#vi options.conf

نتیجه باید به شرح زیر باشد:

#Custombuild optionscustombuild=2.0

حال مقدار وب سرور را از آپاچه ( Aapche ) به nginx تغییر دهید:

#HTTP server. Possible values: apache, nginxwebserver=apache

همچنین مقدار php1_mode را به php-fpm تغییر دهید:

php1_mode=php-fpm

حال دستور زیر را وارد نمائید:

./build all -y

در این مرحله احتمال دارد که نیاز به آپدیت لایسنس دایرکت ادمین وجود داشته باشد که در صورت نیاز می توانید از لینک زیر استفاده کنید:

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

./build rewrite_confs

توجه :
خطا 502 : اگر خطای “502 Bad Gateway” را دریافت کردید، احتمالا مقدار hostname بدرستی وارد نشده است و می بایست اصلاح گردد.

خطای 503 : اگر با این خطا روبرو شدید، دستور زیر را در سرور وارد نمائید:

chown webapps:nginx /var/www