در این قسمت آموزش نصب Nginx رو به طور کامل و مفهومی توضیح میدم .
در ابتدا ما باید وب سرور رو دانلود و از extract کنیم . در این زمان که من این آموزش رو میدم آخرین ورژن این وب سرور 1.0.5 که شما باید آخرین ورژن رو چک کنید و دانلود کنید .
آدرس دانلود آخرین ورژن : nginx: download
جهت دانلود و اکسترکت از دستورات زیر استفاده میکنیم :
کد:
wget http://nginx.org/download/nginx-1.0.5.tar.gz
کد:
tar zxvf nginx-1.0.5.tar.gz
بعد از این که از حالت فشرده خارج کردیم نوبت به نصب میرسه .
معمولا نصب نرم افزار ها از سورس دارای 3 مرحله configure & make & make install که در مرحله configure که اولین مرحله میباشد ما میتوانیم که سری پارامتر ها جهت تنظیم برنامه قبل از کامپایل و نصب اعمال کنیم
قبل از نصب این پارامتر ها رو توضیح بدم .
اگر به هر دلیلی نمیخواید در مرحله اول (configure/.) به خودتون زحمت بدید و تنظیمات رو اعمال کنید یا بعدا میخواهید دوباره این برنامه رو مجددا کامپایل و نصب کنید . شما میتوانید بدون هیچ پارامتری این وب سرور رو توی 3 مرحله نصب کنید . به این صورت :
کد:
./configure
make
make install
اما اصلا توصیه نمیشه که در این حالت کامپایل و نصب کنید و از روش نصبی که در ادامه آموزش میدم پیروی کنید
همونطور که قبلا گفتم در مرحله configure ما مینونیم قبل از کامپایل یک سری تنظیمات یا آپشن هایی رو اعمال کنیم که در قسما زیر توضیح میدم .
توجه : اگر هر کدام از این سوییچ ها را در configure استفاده ننمایید از تنظیمات پیش فرض آن سوییچ استفاده میشود .
این سویچ محل فایل تنظیمات پیش فرض nGinx را مشخص مینماید .
مثال :
کد:
./configure --conf-path=/etc/nginx/nginx.conf
آدرس محل نصب Nginx را مشخص میکند .
مثال :
کد:
--prefix=/usr/local/nginx
محلی که فایل اجرایی nGinx باید در آنجا نصب شود .
مثال :
کد:
--sbin-path=/sbin/nginx
محل ثبت لاگ های error . توجه داشته باشید که شما میتوانید بعدا در فایل های کانفیک مربوط به هر سایت این مسیر را به طور جدا تعریف نمایید و این تنظیم زمانی استفاده میشود که شما در کانفیگ ها آن را مشخص نکرده باشید .
مثال :
کد:
--error-log-path=/logs/error.log
مسیر pid وب سرور : (فایل pid یک فایل متنی ساده میباشد که معرف پروسس های برنامه هست . در این مکان یک مسیر مشخص است که دیگر نرم افزار ها به راحتی بتوانند مسیر pid نرم افزار در حال اجرا را پیدا کنند .)
مثال :
کد:
--pid-path=/logs/nginx.pid
مسیر lock file وب سرور ( این مسیر را میتوان مجددا در فایل های کانفیگ مشخص نمایید . )
lock file به دیگر نرم افزار ها این اجازه را میدهد که تشخیص دهند این نرم افزار در حال اجرا است یا خیر. در این مکان جهت تشخیص اینکه nGinx دو بار اجرا نشود استفاده میشود .
مثال :
کد:
--lock-path=/logs/nginx.lock
این سوییج مسیر ماژول های پرل را مشخص مینماید . این سوییچ زمانی استفاده میشود که شما میخواهی ماژول های پرل به برنامه اضافه کنید .
کد:
--with-perl_modules_path
مسیر فایل اجرایی پرل . جهت اجرای اسکریپت های پرل
مسیر فایل لاگ های دسترسی Access log را مشخص مینماید و این دستور زمانی استفاده میشود که شما در فایل های کانفیگ این مسیر را مشخص نکرده باشید
مثال :
کد:
--http-log-path=/logs/access.log
مسیر دایرکتوری ذخیره سازی فایل های موقتی که توسط client ها ایجاد شده است
کد:
--http-client-body-temp-path
مثال :
کد:
--http-client-body-temp-path=/client_body_temp
مسیر فایل های موقتی که توسط p-r--o-x--yاستفاده میشود :
کد:
--http-*****-temp-path
مثال :
کد:
--http-*****-temp-path=/*****_temp
مسیر فایل های موقتی که توسط ماژول HTTP FastCGI استفاده میشود .
کد:
--http-fastcgi-temp-path
مثال :
کد:
--http-fastcgi-temp-path=/fastcgi_temp
تنظیمات ماژول ها :
ماژول هایی که در مباحث بعدی در مورد انها بحث خواهیم کرد در این قسمت باید انتخاب و نصب شوند . برخی از انها به طور پیش فرض فعال هستند و برخی دیگر باید به صورت دستی فعال شوند .
غیر فعال کردن ماژول charset برای انکد کردن مجدد صفحات وب :
کد:
--without-http_charset_module
غیر فعال کردن ماژول فشرده سازی Gzip
کد:
--without-http_gzip_module
غیر فعال کردن ماژول (اس اس آی )SSI برای اطلاعات بیشتر در مورد SSI به ویکی مراجعه فرمایید WIKI
کد:
--without-http_ssi_module
غیر فعال کردن ماژول تعیین هویت کاربران از طریق cookie
کد:
--without-http_userid_module
غیر فعال کردن ماژول دسترسی جهت دسترسی به تنظیمات رنج های مختلقف IP
کد:
--without-http_access_module
غیر فعال کردن ماژول تعیین هویت پایه ای :
کد:
-without-http_auth_basic_module
غیر فعال کردن ماژول ایندکس گذاری اتومانیک :
--without-http_autoindex_module
غیر فعال کردن ماژول geo . با استفاده از این ماژول میتوان رنج آی پی هر کشور را تشخیص داد
کد:
--without-http_geo_module
غیر فعال کردن ماژول rewrite
کد:
--without-http_rewrite_module
غیر فعال کردن ماژول پـــروکـــســی برای انتقال درخواست ها به دیگر سرور ها :
کد:
--without-http_*****_module
غیر فعال کردن ماژول FastCGI برای ارتباط با تعامل بر قرار کردن با پروسس های FastCGI
کد:
--without-http_fastcgi_module
غیر فعال کردن ماژول محدود سازی Zone برای محدود کردن استفاده از منابع براساس zone مشخص شده
کد:
--without-http_limit_zone_module
غیر فعال کردن ماژول محدود سازی درخواست ها برای هر کاربر
کد:
-without-http_limit_req_module
غیر فعال کردن ماژول مرورگرها که رشته ای حاوی مشخصات مرورگر را به ما میدهد .
کد:
--without-http_browser_module
غیر فعال کردن ماژول upstream برای پیکر بندی لود بالانسینگ load balancing
کد:
--without-http_upstream_ip_hash_module
ماژول هایی که به طور پیش فرض غیر فعال هستند :
سوییچ های زیر به شما اجازه میدهد تا ماژول هایی که به صورت پیش فرض غیر فعال هستند را فعال نمایید .
فعال سازی SSL برای استفاده از https
کد:
-with-http_ssl_module
فعال سازی ماژول Real IP برای خواندن آی پی واقعی افراد از طریق اطلاعات درخواستی Header
کد:
--with-http_realip_module
با فعال سازی این ماژول میتوانید تغییراتی را بر روی تصاویر اعمال نمایید . توجه : اگر قصد استفاده از این ماژول را دارید باید libgd را بر روی سرور خود نصب نمایید . (yum install libgd)
کد:
--with-http_image_filter_module
با فعال سازی ماژول FLV میتوانید به طور خاص فایل های flv را کنترل نمایید .
کد:
--with-http_flv_module
فعال سازی Gzip استاتیک برای ارسال فایل های از پیش فشرده شده
کد:
--with-http_gzip_static_module
با فعال سازی این ماژول میتوانید امنیت کیورد های یک لینک را چک نمایید .
کد:
--with-http_secure_link_module
اگر این ماژول را فعال کنید nGinx یک صفحه آمار و اطلاعات سرور برای شما میسازد
کد:
--with-http_stub_status_module
همونطور که از اسمش مشخصه با فعال سازی این ماژول میتوانید از ابزار google performance استفاده نمایید .
کد:
--with-google_perftools_module
تنظیمات گوناگون
فعال سازی ماژول پــروکـــســــی میل سرور .با پشتیبانی از IMAP4- SMTP - POP3
بقبه رو که مربوط به ایمیل میشه توضیح نمیدم . از اسمش معلومه چی کار میکنه :
کد:
--with-mail_ssl_module
--without-mail_pop3_module
--without-mail_imap_module
--without-mail_smtp_module
تنظیمات نام و گروه کاربری
حساب و گروه کاربری پیش فرض برای شروع کار پروسس های nGinx
مثال :
دیگر تنظیمات :
فعال سازی پشتیبانی از IPv6
غیر فعال سازی HTTP Server
غیر فعال سازی کش HTTP
فعال سازی لاگ گیری های اضافه از اطلاعات برای اشکال زدایی .
اضافه کردن ماژول های اضافه برای کامپایل شدن . nGinx این قابلیت را دارد که شما ماژول های اضافه را دانلود کرده و در وب سرور خود استفاده نمایید . برای این کار میتوانید به آدرس زیر مراجعه فرمایید و بعد از دانلود ماژول مورد نظر با دادن مسیر آن به دستور زیر آن را به وب سرور خود اضافه نمایید .
آدرس ماژول های اضافه : Modules
نصب nGinx در 3 مرحله . لازم به ذکر است شما میتوانید در مرحله اول به صورت دلخواه تنظیمات را اعمال نمایید .
مرحله اول
کد:
./configure
./configure --sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-*****-temp-path=/var/lib/nginx/***** \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--with-debug \
--with-http_stub_status_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-http_dav_module \
--with-http_realip_module \
--with-http_perl_module \
--with-http_stub_status_module \
--with-mail \
--with-http_gzip_static_module \
--user=www-data \
--group=www-data \
مرحله دوم :
مرحله سوم :
خب تموم شد . فکر کنم توی نصب این وب سرور تقریبا اکثر موارد رو گفتم . در مبحث بعدی مورد ساخت فابل init.d برای start/restart/stop/status و ... صحبت خواهم کرد
امید وارم این مقاله مفید و مثمرثمر واقع بشه و اگر کم کاستی یا انحراف یا اشتباهی در اون دیده شد حتما گوشزد کنید .
با تشکر
علی فتاحی