همانطور که مستحضرید NGINX وب سروری است که از آن به عنوان پراکسی، سرور پراکسی ایمیل، متوازن کننده بار و کش سرور هم استفاده می شود. این وب سرور به صورت ماژولار طراحی شده و دارای ماژول های اصلی و شخص ثالث است. این وب سرور به زبان C پیادهسازی شده است.
می خواهیم یه تغییراتی در NGINX بدیم. این تغییرات در درجه اول با هدف آشنایی با کد منبع این وب سرور انجام میشه و در مراحل بعدی امکاناتی رو به اون اضافه می کنه. کد منبع NginX به صورت فقط خواندنی در Github وجود دارد. برای شروع در این پست فرایند کامپایل و ساخت NGINX را بر روی سیستم عامل Ubuntu Server 18.04 LTS بررسی می کنیم. در پست های بعدی ان شاءالله تغییرات مورد نظر را اعمال می کنیم.
توجه: این راهنما برای نصب NGINX نسخه 1.15 بر روی Ubuntu Server 18.04 LTS تنظیم شده است.
با کمک دستور زیر می توانید نسخه Ubuntu خود را بررسی نمایید.
lsb_release -ds # Ubuntu 18.04 LTS
پیش از هر کاری باید بسته های موجود بر روی سیستم را بروزرسانی نمایید. برای این کار از دستور زیر استفاده کنید.
sudo apt update && sudo apt upgrade -y
همانطور که اشاره شد وب سرور NGINX با استفاده از زبان C نوشته شده است. بنابراین برای ساخت آن می بایست ابزارهای لازم برای کامپایل بر روی سیستم نصب شود. این ابزارها به صورت پیش فرض بر روی Ubuntu وجود ندارد. برای نصب ابزارهای مورد نیاز برای کامپایل و ساخت کدهای مبتنی بر C از دستور زیر استفاده کنید. در این دستور دو برنامه git و tree هم نصب خواهند شد. (اگر Ubuntu شما صفر کیلومتر باشد حدودا 40 مگابایت فایل دانلود خواهد شد)
sudo apt install -y build-essential git tree
برای کامپایل NGINX سه کتابخانه دیگر نیز مورد نیاز است. کتابخانه های PCRE، zlib و OpenSSL که می توانید کد مربوط به هر کتابخانه را به کمک wget دانلود نمایید. پس از دانلود هر کدام یک از کتابخانه ها آن را از حالت فشرده خارج کنید. دستورات زیر این کار را برای شما انجام می دهد.
# PCRE version 8.42 wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz && tar xzvf pcre-8.42.tar.gz # zlib version 1.2.11 wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz # OpenSSL version 1.1.0h wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz && tar xzvf openssl-1.1.0h.tar.gz
حال نوبت به نصب پیش نیازهای NGINX است. برای نصب پیش نیاز ها از دستورات زیر استفاده کنید. (اگر Ubuntu شما صفر کیلومتر باشد حدودا 40 مگابایت فایل دانلود خواهد شد)
sudo add-apt-repository -y ppa:maxmind/ppa sudo apt update sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
فرایند ساخت NGINX در Ubuntu 18.04 LTS را از لینک زیر دنبال کنید.