-
July 27th, 2011, 01:13
#1
عضو انجمن
آموزش هایی از وب سرور nGinx - مبتدی تا پیشرفته
با عرض سلام خدمت دوستان عزیز .
همونطور که میدونیم وب سرور های زیادی وجود دارند که هر کدوم طرفدارای خودشون رو دارن و در این میان وب سرور nGinx به خاطر پایداری خیلی خوب ، مصرف کم و بهینه از منابع ، امنیت بالا و دیگر خصوصیاتی که داره طرفداران زیادی رو پیدا کرده و از طرفی خیلی از مدیران سرور دوست دارن که از این وب سرور استفاده کنند ولی به خاطر کانفیک هایی که داره مجبورن از اون استفاده نکنند یا هزینه زیادی بابت کانفک این وب سرور بپردازند .
از این رو برآن شدم که این وب سرور رو از مبتدی تا پیشرفته و نحوه کانفیک آون رو کامل توضیح بدم تا دوستان عزیز هم این زمینه بی بهره نمونن .
قوانین حاکم بر این تاپیک :
1- به هیچ عنوان سوالات و مشکلات خودتون رو در این تاپیک مطرح نکنید و همه در یک تاپیک جدا سوالان و مشکلات خودتون رو مطرح کنید
2- اگه فکر میکنند که مطلبی رو جا انداختم و مفیده که آموزش داده بشه توی پیغام خصوصی اطلاع بدن
لینک بخش سوالات و مشکلات : سوالات و مشکلات تاپیک : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
با تشکر
علی فتاحی
ویرایش توسط ali_fattahi : July 27th, 2011 در ساعت 03:45
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
724server, :..:galiver:..:, ahmadjafarian, AmirHosein, amirlord, arman_2, Bullet-Vps.us, Da vinci, DeltaGostar, dertgtr, Devil, ghasem.fattahpour, gigarayaneh, HADNEZ-ICT, hamed0098, iFire, isatis7t, itjavani, jahromweb, khanihost_ir, m2sh, mahdi2009, Masoud.B, maziyarvex, mehdifx, mehotkhan, MehrganWeb, mem2in, mobin96, mohsen1771, mojtaba127, MostafaBestMan, Mr.3ven, NAVAB.S, navibd, NiceIran.net, nima73, nohie, NOjAN, omid3963, persian.developer, Quality, rasivell, rn4j1m1, rpserver, sahelll, sa_sh41, shayaneds, shayan_shams, shirazlpi, SonyC4, tactools, thanker, tik, ToooPDL, trueenzo, tsamant, Tumrusx, wilberbabeu, xomid
-
July 27th, 2011 01:13
# ADS
-
July 27th, 2011, 03:21
#2
عضو انجمن
آموزش کامل نصب nGinx
در این قسمت آموزش نصب 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 و ... صحبت خواهم کرد
امید وارم این مقاله مفید و مثمرثمر واقع بشه و اگر کم کاستی یا انحراف یا اشتباهی در اون دیده شد حتما گوشزد کنید .
با تشکر
علی فتاحی
ویرایش توسط ali_fattahi : July 27th, 2011 در ساعت 15:54
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
#elahe#, ---, .K.H.A., 1eng.ir, 724server, :..:galiver:..:, Ahmad110, ahmadjafarian, AmirHosein, amirlord, ariansafaei, AriyaDownload, dertgtr, Devil, empratoor, faryspeed, ghasem.fattahpour, HADNEZ-ICT, haio, hejazee, HotHost, iran-developers, isatis7t, jahromweb, khanihost_ir, lovee20002002, m2sh, mahdiazarnia, majidbabaei70, mckeen, mehdi.gpr, mem2in, mhentezari, mobin96, mohsen1771, mojtaba127, MostafaBestMan, Mr.3ven, MR.Zero1, navibd, NiceIran.net, NOjAN, omid3963, Parsjoom, persian.developer, Quality, ramin n, renjo, rezachess, rn4j1m1, sahelll, sasha1360, shayaneds, sheitonakshirazi, shirazlpi, Smyty, SonyC4, spark3r, spsgorgan, tactools, thanker, tik, ToooPDL, tsamant, Vahid, VAHID216, Warez-Host.IR, webhosts
-
July 27th, 2011, 15:29
#3
عضو انجمن
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
تا این مرحله شما باید وب سرور را نصب نمایید .
توی پست قبلی قرار شد نحوه ساخت init.d برای nGinx توضیح بدم که چک کردن در آخرین ورژن خودش این کار رو انجام میده ولی من به صورت خلاصه این مطلب رو مینوسیم برای دوستانی که از ورژن های قدیمی تر استفاده میکنند و اسکریپت init.d را ندارند
1- به مسیر init.d میرویم
2- یک فایل به نام nginx با هر ویرایشگری میسازیم . در این مرحله من از nano استفاده میکنم :
کد های زیر را در آن کپی کرده و در نهایت با کلید های ctrl+o سپس ctrl+x از ان خارج شوید . لازم به ذکر است این کار را با یوزر root انجام دهید .
کد:
#! /bin/sh
# Author: Ryan Norbauer http://norbauerinc.com
# Modified: Geoffrey Grosenbach http://topfunky.com
# Modified: Clement NEDELCU
# Reproduced with express authorization from its contributors
set –e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME
# If the daemon file is not found, terminate the script.
test -x $DAEMON || exit 0
d_start() {
$DAEMON || echo -n " already running"
}
d_stop() {
$DAEMON –s quit || echo -n " not running"
}
d_reload() {
$DAEMON –s reload || echo -n " could not reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
# Sleep for two seconds before starting again, this should give the
# Nginx daemon some time to perform a graceful stop.
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
exit 3
;;
esac
exit 0
سپس دستور زیر را برای مجوز دسترسی و اجرا اعمال نمایید
کد:
chmod +x /etc/init.d/nginx
خب کار تا اینجا به پایان رسید . نحوه کار کردن با این اسکریپت
جهت اجرا ، ری استارت ، ریلود و توقف برنامه از دستورات زیر استفاده میکنیم .
کد:
/etc/init.d/nginx start
/etc/init.d/nginx restart
/etc/init.d/nginx reload
/etc/init.d/nginx stop
میریم به مبحث بعدی .
مسیر پیش فرض فایل های خروجی وب سرور /usr/local/nginx میباشد که در ادامه در مثال ها از این مسیر استفاده خواهیم کرد .
یوزر ها و گروه ها Users & Groups
دانستن ساختار پروسس های nGinx و مخصوصا یوزر ها گروهایی که پردازش ها مختلف بر روی آنها اجرا میشود دارای اهمیت بسیار زیادی میباشد . یکی از مشکلات بسیار شایع در تنظیمات nginx به دلیل تنظیمات اشتباه یوزر یا گروه یوزر و نداشتن سطح دسترسی به فایل ها توسط nGinx میباشد که در نهایت موجب روبرو شدن با پیغام 403 Forbidden در صفخات به دلیل نداشتن سطح دسترسی nginx به فایل ها میباشد .
2 سطح از پروسس ها با احتمال سطح دسترسی های متفاوت وجود دارد .
1- Nginx master process که باید توسط کاربر root اجرا شود . در اغلب سیستم های لینوکسی برنامه هایی که با سطح دسترسی root اجرا میشوند توانایی یاز کردن هرنوع پورتی را با استفاده از سوکت tcp را دارا میباشند در حالی که دیگر کاربران تنها قادر به باز کردن پورت های بالای 1024 فقط برای گوش دادن Listeting به پورت میباشند .
اگر شما nginx را در root اجرا نکرده اید پورت های استاندارد 80 و 443 در دسترس نخواهند بود . علاوه بر آن دستور user که به شما اجازه مشخص کردن user و group ها به پردازش های worker ها را میدهد در نظر گرفته نمیشود .
2- Nginx worker processes که توسط کاربری که در هنگام کانفیگ نصب با دستور user مشخص کرده بودید اجرا میشود . تنظیمات کانفیگ ها دارای تقدم بیشتری نسبت به تنظیماتی دارند که شما در هنگام نصب اعمال کرده اید . اگر شما هیچ کدام از انها را مشخص نکرده اید ، پردازش های worker ها توسط یوزر و گروه nobody اجرا خواهد شد .
سوییچ های nGinx در ترمینال :
فایل اجرایی nginx فرمان های مختلفی را جهت انجام کارهای مختلف دریافت مینماید . برای دریافت لیست کاملی از این فرمان ها . ابتدا شما باید به مسیر فایل اجرایی nginx رفته و با استفاده از فرمان زیر لیست کامل را دریافت نمایید .
کد:
cd /usr/local/nginx/sbin
./nginx -h
جهت متوقف کردن nginx
جهت خروج از nginx
جهت ایجاد مجدد فایل های لاگ
جهت بارگذاری مجدد فایل های کانفیگ
جهت تست فایل های کانفیگ از نظر املایی و ... از دستور زیر استفاده میشود .
جهت تست فایل کانفیگ که در مسیر nGinx نمیباشد از دستور زیر استفاده نمایید
کد:
./nginx –t –c /foo/path/file.conf
که /foo/path/file.conf مسیر فایل دلخواه شما میباشد .
زمانی لازم است که شما بدانید از چه سوییچ هایی هنگام نصب در مرحله configure استفاده کرده اید . سوییچ زیر این کار را با پردازش فایل های کانفیک و ... برای شما انجام میدهد .
------------
اضافه کردن nginx به استارت آپ .
در سیستم عامل های Debian Base نظیر ubuntu از دستور زیر استفاده نمایید .
کد:
update-rc.d –f nginx defaults
در سیستم عامل های RedHat Base نظیر CentOS
کد:
chkconfig --add nginx
برای چک کردن صحت اضافه شدن هم میتونید از دستور زیر استفاده کنید :
کد:
chkconfig --list nginx
خب این بحث هم تموم شد . در ادامه سعی میکنم پر محتوا تر توضیح بدم
باتشکر
علی فتاحی
ویرایش توسط ali_fattahi : July 27th, 2011 در ساعت 16:04
دلیل: اضافه کردن nginx به استارت آپ
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
#elahe#, ---, 1eng.ir, ahmadjafarian, AmirHosein, AriyaDownload, arman_gts, dertgtr, empratoor, ghasem.fattahpour, HADNEZ-ICT, isatis7t, javadhey, khanihost_ir, lovee20002002, m2sh, mehdi.gpr, mem2in, mhentezari, mhm233, mihankid, mojtaba127, Mr.3ven, NiceIran.net, nimapendar, NOjAN, omid3963, Parsjoom, persian.developer, Quality, ramin n, rn4j1m1, rouhallah, sasha1360, shayaneds, sheitonakshirazi, shirazlpi, Smyty, spark3r, tactools, thanker, tik, ToooPDL, tsamant, webhosts
-
July 29th, 2011, 16:27
#4
عضو انجمن
پیکربندی اولیه nginx
خب دوستان عزیز . در قسمت های قبل ما در مورد نصب و تنظیمات اولیه نصب nginx صحبت کردیم و فکر نمیکنم در مرحله نصب چیزی باقی مونده باشه .
در این مبحث قراره ما درباره پیکربندی اولیه nginx بحث کنیم .بدین منظور ابتدا باید به موضوع سینتکس هایی که در فایل های پیکر بندی استفاده میشود بپردازیم سپس با دستورات مختلف آن که به ما اجازه پیکر بندی و بهینه سازی سرور برای ترافیک ها و سخت افزار های مختلف را میدهد اشنا شویم . در نهایت به ساخت چند صفحه تست برای حصول اطمینان از اینکه تمامی مراحل و کانفیگ به درستی انجام شده است مبپردازیم .
در این چند مبحث ما فقط به پیکربندی Basic در nginx میپردازیم و در مباحث بعد از آن ما به بحث های پیشرفته تری همچون پیکربندی ماژول HTTP ، ساحت Virtual host و ... خواهیم پرداخت .
سینتکس فایل های پیکربندی
عموما فایل پیکربندی یک فایل متنی که توسط شما ایجاد شده و توسط برنامه مورد پردازش قرار میگیرد میباشد . به وسیله یک دسته از مقادیر شما میتوانید نحوه کار کرد وب سرور را تعیین نمایید .
در سیستم های لینوکسی هر برنامه ای که دارای پیکربندی خواصی باشد معمولا پیکربندی ها را داخل یک فایل ذخیره میکنند و از آن مقادیر پیکربندی را خوانده و در برنامه اعمال مینمایند و هر برنامه ممکن است دارای یک سری سینتکس های خواص خود باشد و در این رایطه هیج استاندار یک پارچه ای وجود ندارد . از این رو nginx هم مانند دیگر برنامه ها دارای فایل های پیکر بندی خواص خود میباشد که در مقایسه با Apache بسیار راحت تر و یادگیری آن سریع تر و قابل فهم تر است .
تعدادی از مکانیزم ها هستند که ما باید آنها را به خوبی یاد بگیریم . { دستورات ، بلاک ها و ساختارهای منتطقی }
دستورات پیکربندی
فایل های پیکربندی nginx را میتوان به لیستی از دستورات که در ساختارهای منطقی سازماندهی شده اند توصیف نمود .
به صورت پیش فرض nginx از یک فایل پیکربندی اصلی استفاده میکند که مسیر آن /etc/nginx/conf/nginx.conf میباشد .
اگر این فایل را در یک ویرایشگری باز کنید ، به توضیح چند خط اول آن میپردازیم.
در ابتدا به دو خط اول ان میپردازیم .
کد:
#user nobody;
worker_processes 1;
هر کجا در این فایل ها با # در ابتدای خط شروع شده بود آن خط به صورت توضیح در نظر گرفته میشود که میتواند یک توضیج کوتاه در مورد تنظیمات باشد یا اگر میخواهید یک دستور در برنامه عمل نکند آن را به صورت توضیح در میاوریم .
البته خط اول یک دستور است که به صورت توضیح در امده و در برنامه اعمال نمیشود ولی در ادامه این دستور را توضیح خواهم داد .
خط دوم یک دستور میباشد . اولین قسمت آن (worker_processes) نشان دهنده کلید تنظیم که شما به آن یک یا چند مقدار اضافه میکنید . در این مورد مقدار آن 1 است که مشخص کننده این است که nginx باید یک پردازنده برای کارهایش استفاده نماید . ( اطلاعات کاملتر در مورد این دستور و دستورات دیگر در ادامه دادده خواهد شد )
نکته : همیشه دستورات با ; سمی کالن به پایان میرسد .
هر دستور دارای یک معنی خواص خود میباشد و یک خصوصیت در برنامه را تعربف مینماید .
برای مثال : worker_processes فقط مقادیر عددی را دریافت مینماید ، در حالی که دستور user به شما اجازه مشخص کردن تا 2 عدد مقدار رشته ای را میدهد . اولین مقدار آن نام کاربری پردازش های worker ها که باید در آن اجرا شود و مقدار دوم آن هم گروه کاربری آن .
مانند
کد:
user nGinxUser nGinxGroup
nginx به صورت ماژولار کار میکنند در این حالت هر ماژول دارای یک سری از دستورات مشخص میباشد . اکثر دستورات اساسی ، قسمتی از ماژول هسته ی nGinx میباشد و ما در این مباحث آنها را توضیح خواهیم داد و دیگر دستورات مربوط به ماژول های دیگر را مباحث آینده توضیح خواهیم داد .
همانطور که قبلا فایل nginx.conf را مشاهده کردید . متوجه دستوری به نام include شده اید .
همانظور که از اسم این دستور معلون است ، این دستور ، کار اضافه کردن محتوای یک فایل که نام آن فایل در جلوی این دستور نوشته میشود را دارد . یک مثال برای رفع ابهام از این دستور :
نام فایل : nginx.conf
محتوا :
کد:
user nginx nginx;
worker_processes 4;
include other_settings.conf;
نام فایل : other_settings.conf ( همان فایلی که include شده بود )
محتوا :
کد:
error_log logs/error.log;
pid logs/nginx.pid;
تفسیر و ترجمه نهایی توسط nginx به این شکل است :
کد:
user nginx nginx;
worker_processes 4;
error_log logs/error.log;
pid logs/nginx.pid;
همانطور که مشاهده فرمودید nginx در هنگام ترجمه و تفسیر برای خود محتوای فایل other_settings.conf را به ادامه فایل اول اضافه و استفاده مینماید .
پس تا اینجا شما با دستور include اشنا شده اید و باید بتوانید از این دستور برای include کردن دیگر فایل ها نیز استفاده نماید .
در تنظیمات اولیه بعد از نصب، 2 فایل مورد استفاده قرار میگیرد 1- nginx.conf و 2-mime.types
به هر حال در مورد از تنظیمات پیشرفته تر میتواند 5 فایل یا بیشتر هم وجود داشته باشد که در زیر توضیح داده میشود :
nginx.conf : فایل تنظیمات اولیه برنامه
mime.types : یک لیستی از پسوند های فایل ها و نوع MIME مربوط به آن
fastcgi.conf : تنظیمات مربوط به Fast-CGI
*****-conf : تنظیمات مربوط به پــروکـــســـی
sites.conf : پیکربندی مربوط به سایت ها که توسط nginx به کار گرفته میشود و در آن virtual host ها میباشد ولی توسیه میشود فایل های جداگانه مربوط به هر سایت اسجاد و include کنید و
نکته : دستور include را میتوان به صورت نام های سراری استفاده نمود . بدین صورت که شما میتوانید wildcard فایل های را صدا بزنید .
به عتوان مثال :
کد:
include sites/*.conf;
که تمامی فایل های با پسوند conf. را که در پوشه sites میباشند را include مینماید. این مکانیزم به شما این اجازه را میدهد که کانفیگ های مربوط به هر سایت را در یک فایل جدا ثبت نموده و همه را به صورت یکجا include نمایید .
دقت نمایید هنگامی که یک فایل را با نام آن Include مینمایید اگر آن فایل وجود نداشته باشد هنگان اجرای nginx پیغام خطایی را میدهد و Nginx اجرا نمیشود .
به عنوان نمونه :
کد:
[root@myserver sbin]# ./nginx -t
[emerg]: open() "/etc/nginx/conf/dummyfile.conf" failed (2: No
such file or directory) in /etc/nginx/conf/nginx.conf:48
خب تا اینجای بحث برای امروز کافیه . در مبحث بعدی در مورد بلاک ها (server , http, events) و ... توضیح خواهم داد
امیدوارم مثمر ثمر واقع بشه
با تشکر
علی فتاحی
ویرایش توسط ali_fattahi : July 29th, 2011 در ساعت 16:33
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
#elahe#, ---, 1eng.ir, 3245, ahmadjafarian, AmirHosein, ariansafaei, AriyaDownload, arman_gts, dertgtr, empratoor, ghasem.fattahpour, gigabyte2052, HADNEZ-ICT, ignore2010, javadhey, khanihost_ir, lovee20002002, m2sh, Masoud.B, mem2in, mhentezari, mhm233, mihankid, mojtaba127, MostafaBestMan, NiceIran.net, nimapendar, NOjAN, paradox1666, Parsjoom, persian.developer, ppro, Quality, ramin n, rn4j1m1, rouhallah, sahelll, sasha1360, shayaneds, shirazlpi, spark3r, tactools, thanker, tik, ToooPDL, tsamant, webhosts
-
عضو انجمن
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
ایا می شه کاری کرد برای هاستینگ هم مناسب باشه ؟
-
تعداد تشکر ها ازrouhallah به دلیل پست مفید
-
July 24th, 2012, 22:30
#6
عضو انجمن
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
با عرض سلام خدمت دوستان عزیز .جا داره از همه دوستان پوزش طلب کنم به خاطر غیبت کبری که داشتم .
خب امروز میخوام برم سر وقت دستورات کانفیگ اولیه nginx
تو این قسمت قرار بود دستورات و بلاک ها و ... رو به شما دوستان آموزش بدم که بدوم معطلی میریم سر آموزش
دستورات از ماژول های انجینکس می آیند به این معنی که اگر شما یک ماژول را فعال نمایید یک سری از دستورات مربوط به آن به مجموعه دستورات کانفیک وب سرور اضافه خواهد شد .
بلاک events
نمونه کد :
کد:
events
{
worker_connections 1024;
}
توضیحات :
بلاک events که شما در فایل کانفیگ پیش فرض میتوانید ببینید از ماژول events آمده است .برخی از دستورات هستند که فقط در این بلاک کار خواهند کرد . برای مثال دستور worker_connections فقط در بلاک events کار خواهد کرد . در این میان یک استثتاء وجود دارد که برخی از دستورات میتواند در خارج از بلاک ها و در قسمت root کانفیگ ها قرار میگیرد که تاثیر آن بر روی کل سرور خواهد بود .
توجه شود در برخی موارد میتوان از بلاک های تو در تو استفاده نمود . بدین صورت :
کد:
http {
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.com.log;
location ^~ /admin/ {
index index.php;
}
}
}
این مثال به شما نشان میدهد که چطور با استفاده از بلاک http یک وب سایت را سرویس دهی کنید ( معرفی به وب سرور و ساخت virtual host )
در داخل بلاک http شما میتوانید یک یا چند بلاک server تعریف نمایید . یلاک سرور به شما اجازه کانفیگ یک virtual host را میدهد . در این مثال بلاک server شامل چند کانفیک میباشد که بر روی تمامی درخواستهایی که برای example.com می آید اعمال میشود .
در داخل بلاک سرور شما میتوانید یک یا چند بلاک location اضافه نمایید . این بلاک به شما اجازه میدهد تا بتوانید تنظیمات و کانفیگ ها را فقط در زمانی که یک uri مشخص درخواست میشود اعمال نمایید . در ادامه مباحث به توضیحات بیشتر در مورد یلاک location در مکانهای مختلف میپردازیم .
اگر ما در ساختار بلاک های تو در تو از داخلی ترین بلاک به بیرونی ترین بلاک شروع به حرکت نماییم . هر بلاک فرزند بلاک بالاتر از خودش به حساب می آید . هر یلاک فرزند میتواند یک سری از دستورات را از بلاک پدرش به ارث ببرد ( در صورتی که خود دارای آن دستور نباشد )
دستور access_log که در بلاک server تعربف شده است مشخص مینماید که تمامی درخواست های HTTP برای این server باید در یک فایل text لاگ شود . این دستور نیز در داخل یلاک فرزند location صدق میکند و همچنین شما قادر هستید که با استفاده مجدد از دستور access_log آن را غیر فعال نمایید :
کد:
[…]
location ^~ /admin/ {
index index.php;
access_log off ;
}
[…]
در این مورد . لاگ گیری در تمامی قسمت های این وب سایت به حز مکان /admin/ فعال میباشد .
ویرایش توسط ali_fattahi : July 24th, 2012 در ساعت 22:34
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
#elahe#, benii, dertgtr, HADNEZ-ICT, Hostpolis, khanihost_ir, mem2in, mhentezari, nohie, NOjAN, Parsjoom, ppro, Quality, sahelll, sasha1360, se7en-host, thanker, tik, webhosts
-
October 29th, 2012, 21:37
#7
عضو انجمن
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
نوشته اصلی توسط
musicayob
سلام و درود ، دوستان کسی می دونه چگونه می توانیم تعداد در خواست های nginx را برای یک ای پی محدود کرد ؟
vps ویندوز دارم
سلام
ابتدا یاید با دایرکتو limit_conn_zone یک zone تعریف کنید . بعد هم داخل تنظیمات server با دایروکتو های limit_conn و limit_rate تعداد کانکشن ها و سرعت کانکشن ها رو هم محدود کنید
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
-
October 29th, 2012, 21:39
#8
عضو انجمن
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
نوشته اصلی توسط
majam
سلام من میخام تو nginx که رو سنتوز نصب کردم لیست دایروکتوری رو مثل IIS به کاربرام نشون بده باید چکار کنم ؟؟؟
سلام
خیلی راحت با اضافه کردن یک دستور در یلاک location میشه این کار رو کرد
اینم از دستورش
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
-
December 7th, 2012, 17:34
#9
عضو انجمن
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
اون سایت هایی که دوستان معرفی کردن چندان کامل تبدیل نمیکنه . htaccess ها هم کار نمیکنند مگر در حالتی که با apache پـــروکـــسی بشن در غیر اینصورت باید تبدیل بشن و محل قرار گرفتن اون فایل ها میتونه هرجایی باشه فقط باید تو کانفیگ اصلی تعریف بشه .
برای ورد پرس هم میتونید از این لینک استفاده کنید
WordPress NGINX Rewrite Rules
-
تعداد تشکر ها ازali_fattahi به دلیل پست مفید
-
February 18th, 2013, 22:58
#10
پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته
کد:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
ارور میده هنگام ./configure
چه کنم ؟ میشه اموزش بدید چگونه انجین ایکس رو برای کلوکسو اماده کنم ؟
تشکر
-
تعداد تشکر ها از Dead.Zone به دلیل پست مفید