اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نصب و کامپایل "Nginx 1.6.0 " از سورس در RHEL/CentOS 7.0

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نصب و کامپایل "Nginx 1.6.0 " از سورس در RHEL/CentOS 7.0

    Nginx (یا انجین ایکس، انجین اکس)وب سروری است که به سرعت در دنیای اینترنت در حال رشد می باشد. از مزیت های آن می توان به مدل ماژولار، رایگان، اپن سورس، کارایی بالا، پایداری، تنظیم آسان فایلها، معماری asynchronous (مبتنی بر رویداد) و نیاز کم به منابع برای اجرا اشاره کرد.
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	19dea13.png نمایش ها:	1 اندازه:	56.2 KB شناسه:	20319




    پیش نیازها :

    برای RHEL 7.0
    • نصب minimal RHEL 7.0
    • فعال کردن subscription ردهت و مخازن در RHEL 7.0


    برای CentOS7.0
    • نصب mininma CentOS 7.0


    تنظیم آدرس ip استاتیک
    • تعریف کردن آدرس ip استاتیک بر روی RHEL/CentOS 7.0



    همچنین توصیه میشود مطالعه کنید.

    آموزش نصب وب سرور Nginx (انجین اکس) در اوبونتو 16

    آموزش نصب وب سرور Nginx (انجین اکس) در دبیان 9

    آموزش نصب وب سرور Nginx (انجین اکس) در ردهت، فدورا و سنت او اس 7


    از آنجاییکه مخازن official RHEL/CentOS 7 پکیج binary مربوط به nginx را فراهم نمی کنند، ما در این آموزش شما را در نصب آخرین ورژن استیبل Nginx 1.6.0 بر روی Red Hat Enterprise یا CentOS 7 از طریق source راهنمایی خواهیم کرد. اگر می خواهید از نصب سورس دوری کنید، میتوانید مخزن رسمی nginx رو اضافه کنید و پکیج باینری (ورژن 1.4.x) را به کمک مدیریت پکیج yum نصب کنید.

    نصب از طریق کامپایل سورس دارای چندین مزیت است، علاوه بر اینکه شما میتوانید آخرین ورژن موجود را نصب کنید، میتوانید تنظیمات nginx رو با اضافه یا حذف ماژول ها، تغییر مسیر نصب سیستم، یا تنظیمات مهم دیگر تغییر بدهید. به عبارت دیگر شما کنترل کامل روی پروسه نصب خواهید داشت.


    گام اول : دانلود، کامپایل (Compile) و نصب nginx
    1 : قبل از شروع کامپایل Nginx و پروسه نصب مطمین باشید که کامپایلر C / C++ و PCRE یا (Perl Compatible Regular Expressions)، کتابخانه فشرده سازی Zlib و OpenSSL (اگر میخواهید nginx را به همراه SSL اجرا کنید) را بر روی سیستم نصب دارید که از دستور زیر استفاده می کنید :
    کد:
    # yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Install-GCC-Compiler.png نمایش ها:	1 اندازه:	101.5 KB شناسه:	20304

    2 : حالا به صفحه رسمی Nginx برید و آخرین ورژن استیبل (nginx 1.6.0) موجود را با دستور wget دانلود کنید، آن را extract کنید و وارد پوشه extract شده nginx بشوید و دستورات زیر را به ترتیب وارد کنید :
    کد:
    # wget http://nginx.org/download/nginx-1.6.0.tar.gz
    # tar xfz nginx-1.6.0.tar.gz
    # cd nginx-1.6.0/
    # ls -all
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Download-Nginx-Source.png نمایش ها:	1 اندازه:	43.8 KB شناسه:	20305

    3 : گام بعدی سفارشی کردن پروسه نصب nginx است. از فایل configure استفاده کنید تا آپشن های تنظیمات و ماژول های مورد نیاز برای پروسه کامپایل تان را ببینید از دستور زیر استفاده کنید و مطمین باشید که در مسیر nginx 1.6.0 هستید :
    کد:
    # ./configure --help
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Nginx-Configure-Help.png نمایش ها:	1 اندازه:	45.4 KB شناسه:	20306

    4 : حالا زمان آن است که nginx را با تنظیمات خاص خودتان کامپایل کنید و ماژول ها را فعال یا غیر فعال کنید. برای این آموزش ماژول ها و تنظیمات زیر استفاده شده اند، اما شما می تونید کامپایل را به هر چیزی که برایتان مناسب تر است تغییر دهید.

    –user=nginx –group=nginx :
    یوزر و گروه که Nginx تحت آنها اجرا خواهد شد.

    –prefix=/etc/nginx :
    مسیر قرارگرفتن فایل های کانفیگ سرور (فایل nginx.conf و دیگر فایلهای تنظیمات) - البته پوشه پیشفرض /usr/local/nginx می باشد.

    –sbin-path=/usr/sbin/nginx :
    محل قرار گرفتن فایل اجرایی Nginx

    –conf-path=/etc/nginx/nginx.conf :
    این گزینه برای فایل تنظیمات nginx.conf نام تعریف می کند - که میتوانید تغییر بدهید.

    –error-log-path=/var/log/nginx/error.log :
    تعریف مسیر فایل Log Error (لاگ ارور) در nginx

    http-log-path=/var/log/nginx/access.log :
    تعریف کردن مسیر فایل access.log

    –pid-path=/var/run/nginx.pid :
    تعریف نام برای فایل اصلی ID پروسس

    –lock-path=/var/run/nginx.lock :
    تعریف نام برای فایل nginx lock

    –with-http_ssl_module :
    امکان ایجاد ماژول HTTPS را فعال می کند - که به صورت پیش فرض ساخته نمی شود و نیاز به کتابخانه OpenSSL دارد.

    –with-pcre :
    مسیر سورس کتابخانه PCRE را مشخص می کند - که به صورت پیش فرض ساخته نمی شود و نیاز به کتابخانه PCRE دارد.

    برای مشاهده لیست ماژول های Nginx به صفحه وب ویکی Nginx مراجعه کنید : http://wiki.nginx.org/Modules.

    اگر نیاز به نصب ماژول خاصی روی nginx ندارید میتوانید آن را با استفاده از دستور زیر غیر فعال کنید :
    کد:
    --without-module_name
    حالا Nginx را با دستور زیر کامپایل کنید، که در واقع تمام تنظیمات و ماژول های بحث شده در بالا را استفاده خواهد کرد. (مطمئن باشید که دستور در یک سطر باقی می ماند.)
    کد:
    # ./configure --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-pcre
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Configure-Nginx-With-Modules.png نمایش ها:	1 اندازه:	82.7 KB شناسه:	20307

    5 : بعد از این که پروسس کامپایل تمام ابزار های مورد نیاز سیستم مانند کامپایلر گنو c ,PCRE و کتابخانه OPenSSL را تایید کرد، اون فایل make.conf را می سازد و یه خروجی از خلاصه تمام تنظیمات می دهد.
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Nginx-Compilation-Process.png نمایش ها:	1 اندازه:	74.8 KB شناسه:	20308

    6 : آخرین گام ساخت باینری ها با استفاده از دستور make است، که نسبت به منابع کامپیوتر شما می تواند زمانی طول بکشد و nginx را بر روی سیستم تان با استفاده از دستور make install نصب کنید.

    به این نکته توجه کنید که دستور make install به مجوز root برای اجرای نصب نیازمند است، بنابراین اگر با اکانت root لاگین نشده اید از یوزر با مجوز بالا با sudo استفاده کنید :
    کد:
    # make
    # make install
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Install-Nginx-Source.png نمایش ها:	1 اندازه:	83.1 KB شناسه:	20309

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Nginx-Source-Installation.png نمایش ها:	1 اندازه:	79.4 KB شناسه:	20310


    گام دوم : تغییر Nginx و ایجاد اسکریپت INIT
    7 : بعد از اینکه نصب با موفقیت به اتمام رسید باید یوزر nginx را تعریف کنیم (دایرکتوری etc/nginx/ بعنوان پوشه ی home یوزر در نظر گرفته شود و دسترسی شل برای یوزر لحاظ نشود ) که یوزری است که nginx تحت آن و با استفاده از دستور زیر اجرا خواهد شد :
    کد:
    # useradd -d /etc/nginx/ -s /sbin/nologin nginx
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Add-Nginx-User.png نمایش ها:	1 اندازه:	31.2 KB شناسه:	20311

    8 : چون در پروسه کامپایل مشخص کرده ایم که nginx توسط یوزر سیستمی nginx اجرا خواهد شد، فایل nginx.conf را باز کرده و عبارت یوزر را به nginx تغییر دهید.
    کد:
    # nano /etc/nginx/nginx.conf
    در اینجا با استفاده از آپشن های زیر، یوزر و همچنین عبارات document root location را قرار دهید.
    کد:
    user nginx;
    location / {
                    root /srv/www/html;
                    autoindex on;
                    index index.html index.htm;
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Run-Nginx-As-User.png نمایش ها:	1 اندازه:	66.6 KB شناسه:	20312

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Enable-Nginx-DocumentRoot.png نمایش ها:	1 اندازه:	67.8 KB شناسه:	20313

    9 : قبل از شروع nginx اطمینان حاصل کنید که مسیر root داکیومنت وب را ایجاد کرده اید، بعد nginx را با دستور زیر استارت کنید :
    کد:
    # mkdir -p /srv/www/html
    # /usr/sbin/nginx
    اگر می خواهید چک کنید که آیا nginx در حال اجرا است, دستور netstat را اجرا کنید تا ببینید که آیا در حال listen می باشد :
    کد:
    # netstat -tulpn | grep nginx
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Create-Nginx-DocumentRoot.png نمایش ها:	1 اندازه:	40.2 KB شناسه:	20314

    10 : برای چک کردن توسط یک سیستم ریموت، یک رول فایروال اضافه کنید تا ارتباط به بیرون بر روی پورت 80 را باز کند.
    کد:
    # firewall-cmd --add-service=http  ## For on-fly rule
    # firewall-cmd --permanent --add-service=http  ## For permanent rule
    # systemctl restart firewalld
    مرورگر را باز کنید و آدرس زیر را وارد کنید :
    کد PHP:
    http://server_ip/ 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Verify-Nginx-Installation.png نمایش ها:	1 اندازه:	13.6 KB شناسه:	20315

    11 : برای مدیریت پروسس nginx از دستورات زیر استفاده کنید.
    • nginx –V : نمایش تنظیمات و ماژول های nginx
    • nginx –h : آپشن راهنما
    • Nginx : شروع پروسس nginx
    • nginx -s stop : استاپ کردن پروسس nginx
    • nginx -s reload : ریلود (reload) کردن پروسس nginx

    کد:
    # nginx -V
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Manage-Nginx-Process.png نمایش ها:	1 اندازه:	30.1 KB شناسه:	20316

    12 : اگر می خواهید پروسه daemon (دمون) nginx را از طریق اسکریپت init RHEL/CentOS مدیریت کنید، فایل nginx را در مسیر سیستمی /etc/inint.d بسازید، و بعد می تونید از دستورات service یا systemctl برای مدیریت پروسس استفاده کنید :
    کد:
    # nano /etc/init.d/nginx
    محتوای زبر را به فایل اضافه کنید :
    کد:
    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    
    # chkconfig:   - 85 15
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # pidfile:     /var/run/nginx.pid
    # user:        nginx
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/sbin/nginx"
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"
    lockfile=/var/run/nginx.lock
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
    
    force_reload() {
        restart
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
       *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Add-Nginx-Init-Script.png نمایش ها:	1 اندازه:	67.1 KB شناسه:	20317

    13 : بعد از ایجاد فایل init nginx مجوز اجرایی را اضافه کنید و دمون (daemon) رو با استفاده از دستور زیر مدیریت کنید :
    کد:
    # chmod +x /etc/init.d/nginx
    # service nginx start|stop|restart|reload|force_reload|configtest|condrestart
    # systemctl start|stop|restart nginx
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	Start-Nginx-Server.png نمایش ها:	1 اندازه:	72.2 KB شناسه:	20318

    14. اگر میخواهید از nginx به صورت دایم وهمیشگی استفاده کنید برای استارت شدن ان به هنگام بوت (start at boot time) دستور زیر را اجرا کنید :
    کد:
    # chkconfig nginx on
    
    OR
    
    # systemctl enable nginx
    تمام شد. حالا شما آخرین ورژن nginx را بر روی سیستم RHEL/CentOS 7 خود نصب دارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-09-2021, 02:53 PM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X