صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

موضوع: آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

  1. #1
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    113 آموزش هایی از وب سرور nGinx - مبتدی تا پیشرفته


    با عرض سلام خدمت دوستان عزیز .
    همونطور که میدونیم وب سرور های زیادی وجود دارند که هر کدوم طرفدارای خودشون رو دارن و در این میان وب سرور nGinx به خاطر پایداری خیلی خوب ، مصرف کم و بهینه از منابع ، امنیت بالا و دیگر خصوصیاتی که داره طرفداران زیادی رو پیدا کرده و از طرفی خیلی از مدیران سرور دوست دارن که از این وب سرور استفاده کنند ولی به خاطر کانفیک هایی که داره مجبورن از اون استفاده نکنند یا هزینه زیادی بابت کانفک این وب سرور بپردازند .
    از این رو برآن شدم که این وب سرور رو از مبتدی تا پیشرفته و نحوه کانفیک آون رو کامل توضیح بدم تا دوستان عزیز هم این زمینه بی بهره نمونن .

    قوانین حاکم بر این تاپیک :
    1- به هیچ عنوان سوالات و مشکلات خودتون رو در این تاپیک مطرح نکنید و همه در یک تاپیک جدا سوالان و مشکلات خودتون رو مطرح کنید
    2- اگه فکر میکنند که مطلبی رو جا انداختم و مفیده که آموزش داده بشه توی پیغام خصوصی اطلاع بدن

    لینک بخش سوالات و مشکلات : سوالات و مشکلات تاپیک : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

    با تشکر
    علی فتاحی
    ویرایش توسط ali_fattahi : July 27th, 2011 در ساعت 03:45

  2. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  3. # ADS




     

  4. #2
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    8 آموزش کامل نصب 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 را مشخص مینماید .
    کد:
    --conf-path
    مثال :
    کد:
    ./configure --conf-path=/etc/nginx/nginx.conf

    آدرس محل نصب Nginx را مشخص میکند .
    کد:
    --prefix
    مثال :
    کد:
    --prefix=/usr/local/nginx

    محلی که فایل اجرایی nGinx باید در آنجا نصب شود .
    کد:
    --sbin-path
    مثال :
    کد:
    --sbin-path=/sbin/nginx

    محل ثبت لاگ های error . توجه داشته باشید که شما میتوانید بعدا در فایل های کانفیک مربوط به هر سایت این مسیر را به طور جدا تعریف نمایید و این تنظیم زمانی استفاده میشود که شما در کانفیگ ها آن را مشخص نکرده باشید .
    کد:
    --error-log-path=
    مثال :
    کد:
    --error-log-path=/logs/error.log

    مسیر pid وب سرور : (فایل pid یک فایل متنی ساده میباشد که معرف پروسس های برنامه هست . در این مکان یک مسیر مشخص است که دیگر نرم افزار ها به راحتی بتوانند مسیر pid نرم افزار در حال اجرا را پیدا کنند .)
    کد:
    --pid-path=
    مثال :
    کد:
    --pid-path=/logs/nginx.pid

    مسیر lock file وب سرور ( این مسیر را میتوان مجددا در فایل های کانفیگ مشخص نمایید . )
    lock file به دیگر نرم افزار ها این اجازه را میدهد که تشخیص دهند این نرم افزار در حال اجرا است یا خیر. در این مکان جهت تشخیص اینکه nGinx دو بار اجرا نشود استفاده میشود .
    کد:
    --lock-path
    مثال :
    کد:
    --lock-path=/logs/nginx.lock

    این سوییج مسیر ماژول های پرل را مشخص مینماید . این سوییچ زمانی استفاده میشود که شما میخواهی ماژول های پرل به برنامه اضافه کنید .
    کد:
    --with-perl_modules_path

    مسیر فایل اجرایی پرل . جهت اجرای اسکریپت های پرل
    کد:
    --with-perl


    مسیر فایل لاگ های دسترسی Access log را مشخص مینماید و این دستور زمانی استفاده میشود که شما در فایل های کانفیگ این مسیر را مشخص نکرده باشید
    کد:
    --http-log-path
    مثال :
    کد:
    --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
    بقبه رو که مربوط به ایمیل میشه توضیح نمیدم . از اسمش معلومه چی کار میکنه :
    کد:
    --with-mail_ssl_module
    --without-mail_pop3_module
    --without-mail_imap_module
    --without-mail_smtp_module

    تنظیمات نام و گروه کاربری

    حساب و گروه کاربری پیش فرض برای شروع کار پروسس های nGinx
    کد:
    --user
    کد:
    --group
    مثال :
    کد:
    --user=www-data

    دیگر تنظیمات :

    فعال سازی پشتیبانی از IPv6
    کد:
    --with-ipv6

    غیر فعال سازی HTTP Server
    کد:
    --without-http

    غیر فعال سازی کش HTTP
    کد:
    --without-http-cache

    فعال سازی لاگ گیری های اضافه از اطلاعات برای اشکال زدایی .
    کد:
    --with-debug

    اضافه کردن ماژول های اضافه برای کامپایل شدن . nGinx این قابلیت را دارد که شما ماژول های اضافه را دانلود کرده و در وب سرور خود استفاده نمایید . برای این کار میتوانید به آدرس زیر مراجعه فرمایید و بعد از دانلود ماژول مورد نظر با دادن مسیر آن به دستور زیر آن را به وب سرور خود اضافه نمایید .
    کد:
    --add-module

    آدرس ماژول های اضافه : 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 \

    مرحله دوم :
    کد:
    make
    مرحله سوم :
    کد:
    make install

    خب تموم شد . فکر کنم توی نصب این وب سرور تقریبا اکثر موارد رو گفتم . در مبحث بعدی مورد ساخت فابل init.d برای start/restart/stop/status و ... صحبت خواهم کرد
    امید وارم این مقاله مفید و مثمرثمر واقع بشه و اگر کم کاستی یا انحراف یا اشتباهی در اون دیده شد حتما گوشزد کنید .

    با تشکر
    علی فتاحی
    ویرایش توسط ali_fattahi : July 27th, 2011 در ساعت 15:54

  5. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  6. #3
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    16 پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

    تا این مرحله شما باید وب سرور را نصب نمایید .
    توی پست قبلی قرار شد نحوه ساخت init.d برای nGinx توضیح بدم که چک کردن در آخرین ورژن خودش این کار رو انجام میده ولی من به صورت خلاصه این مطلب رو مینوسیم برای دوستانی که از ورژن های قدیمی تر استفاده میکنند و اسکریپت init.d را ندارند
    1- به مسیر init.d میرویم
    کد:
    cd /etc/init.d/
    2- یک فایل به نام nginx با هر ویرایشگری میسازیم . در این مرحله من از nano استفاده میکنم :
    کد:
    nano nginx
    کد های زیر را در آن کپی کرده و در نهایت با کلید های 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 –s stop

    جهت خروج از nginx
    کد:
    nginx –s quit

    جهت ایجاد مجدد فایل های لاگ
    کد:
    nginx –s reopen

    جهت بارگذاری مجدد فایل های کانفیگ
    کد:
    nginx –s reload

    جهت تست فایل های کانفیگ از نظر املایی و ... از دستور زیر استفاده میشود .
    کد:
    nginx –t

    جهت تست فایل کانفیگ که در مسیر nGinx نمیباشد از دستور زیر استفاده نمایید
    کد:
    ./nginx –t –c /foo/path/file.conf
    که /foo/path/file.conf مسیر فایل دلخواه شما میباشد .

    زمانی لازم است که شما بدانید از چه سوییچ هایی هنگام نصب در مرحله configure استفاده کرده اید . سوییچ زیر این کار را با پردازش فایل های کانفیک و ... برای شما انجام میدهد .
    کد:
    ./nginx -V
    ------------
    اضافه کردن 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 به استارت آپ

  7. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  8. #4
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    پیش فرض پیکربندی اولیه 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 شده اید .
    کد:
    include       mime.types;
    همانظور که از اسم این دستور معلون است ، این دستور ، کار اضافه کردن محتوای یک فایل که نام آن فایل در جلوی این دستور نوشته میشود را دارد . یک مثال برای رفع ابهام از این دستور :
    نام فایل : 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

  9. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  10. #5
    عضو انجمن rouhallah آواتار ها
    تاریخ عضویت
    Jun 2009
    محل سکونت
    اصفهان
    نوشته ها
    225
    تشکر تشکر کرده 
    138
    تشکر تشکر شده 
    512
    تشکر شده در
    291 پست

    پیش فرض پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

    ایا می شه کاری کرد برای هاستینگ هم مناسب باشه ؟

  11. تعداد تشکر ها ازrouhallah به دلیل پست مفید


  12. #6
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    پیش فرض پاسخ : آموزش های از وب سرور 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

  13. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  14. #7
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    پیش فرض پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

    نقل قول نوشته اصلی توسط musicayob نمایش پست ها
    سلام و درود ، دوستان کسی می دونه چگونه می توانیم تعداد در خواست های nginx را برای یک ای پی محدود کرد ؟


    vps ویندوز دارم
    سلام
    ابتدا یاید با دایرکتو limit_conn_zone یک zone تعریف کنید . بعد هم داخل تنظیمات server با دایروکتو های limit_conn و limit_rate تعداد کانکشن ها و سرعت کانکشن ها رو هم محدود کنید

  15. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  16. #8
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    پیش فرض پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

    نقل قول نوشته اصلی توسط majam نمایش پست ها
    سلام من میخام تو nginx که رو سنتوز نصب کردم لیست دایروکتوری رو مثل IIS به کاربرام نشون بده باید چکار کنم ؟؟؟
    سلام
    خیلی راحت با اضافه کردن یک دستور در یلاک location میشه این کار رو کرد
    اینم از دستورش
    کد:
     autoindex  on;

  17. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  18. #9
    عضو انجمن ali_fattahi آواتار ها
    تاریخ عضویت
    Oct 2008
    محل سکونت
    ---
    نوشته ها
    198
    تشکر تشکر کرده 
    56
    تشکر تشکر شده 
    480
    تشکر شده در
    116 پست

    پیش فرض پاسخ : آموزش های از وب سرور nGinx - مبتدی تا پیشرفته

    اون سایت هایی که دوستان معرفی کردن چندان کامل تبدیل نمیکنه . htaccess ها هم کار نمیکنند مگر در حالتی که با apache پـــروکـــسی بشن در غیر اینصورت باید تبدیل بشن و محل قرار گرفتن اون فایل ها میتونه هرجایی باشه فقط باید تو کانفیگ اصلی تعریف بشه .
    برای ورد پرس هم میتونید از این لینک استفاده کنید
    WordPress NGINX Rewrite Rules

  19. تعداد تشکر ها ازali_fattahi به دلیل پست مفید


  20. #10
    کاربر اخراج شده
    تاریخ عضویت
    Jul 2012
    نوشته ها
    71
    تشکر تشکر کرده 
    129
    تشکر تشکر شده 
    57
    تشکر شده در
    47 پست

    پیش فرض پاسخ : آموزش های از وب سرور 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

    چه کنم ؟ میشه اموزش بدید چگونه انجین ایکس رو برای کلوکسو اماده کنم ؟

    تشکر

  21. تعداد تشکر ها از Dead.Zone به دلیل پست مفید


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 172
    آخرين نوشته: June 17th, 2018, 19:30
  2. درخواست اموزش رفع Nginx is functioning normally بعداز نصب وب سرور nginx
    توسط sms.bartarhost در انجمن دايرکت ادمين DirectAdmin
    پاسخ ها: 0
    آخرين نوشته: February 25th, 2015, 15:51
  3. پیام Welcome to nginx بعد و قبل از نصب وردرپرس در دایرکت ادمین
    توسط yareblogi در انجمن دايرکت ادمين DirectAdmin
    پاسخ ها: 6
    آخرين نوشته: November 1st, 2014, 00:02
  4. پیش فرض اموزش کامل نصب و کانفیگ Nginx
    توسط elementary در انجمن مباحث و منابع آموزشی
    پاسخ ها: 0
    آخرين نوشته: June 17th, 2014, 16:45
  5. پیام Welcome to nginx!
    توسط javadimoheb در انجمن وب سرورها
    پاسخ ها: 13
    آخرين نوشته: January 21st, 2014, 10:17

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •