وب سرور Openresty یک پلتفرم وب کامل بر مبنای Nginx است. این پلتفرم پیشرفته می تواند اسکریپت های زبان Lua را با استفاده از موتور LuaJIT خود اجرا کند. Openresty با در بر گرفتن ماژول های داخلی Nginx به یک وب سرور قدرتمند تبدیل شده است. همچنین، بسیاری از توسعه دهندگان به کمک این ابزار می توانند به راحتی برنامه ها و سرویس های وب مقیاس پذیر و gatewayهای پویا بسازند.
فهرست مطالب
وب سرور Openresty چیست؟
همانطور که گفته شد، Openresty یک پلتفرم وب تمام عیار و نسخه پیشرفته Nginx می باشد. هدف این پلتفرم، اجرای برنامه وب server-side شما به طور کامل در Nginx می باشد و از مدل رویداد Nginx برای انجام ورودی ها و خروجی های non-blocking با کلاینت های HTTP و پشتیبان های راه دور مانند: MySQL, PostgreSQL, Memcached و Redis استفاده می کند. توجه داشته باشید که Openresty یک fork Nginx نیست بلکه یک پلتفرم برنامه و gateway سطح بالا است که از Nginx به عنوان مؤلفه استفاده می کند.
روش های نصب Openresty در راکی لینوکس
حال که تا حدودی با این ابزار آشنا شدید بیایید به روش نصب آن بپردازیم. البته باید برای نصب درست و آسان پیش نیازهای آن را دارا باشید که در اینجا به آنها اشاره شده است.
پیش نیازهای نصب Openresty
- سرور مناسب برای اجرای راکی لینوکس
- رمزعبور root پیکربندی شده در سرور
روش اول: نصب Openresty با استفاده از مخازن YUM
روش اول ما برای نصب Openresty در راکی لینوکس استفاده از مخازن YUM می باشد، که به صورت زیر است.
مرحله 1: افزودن مخازن Openresty در راکی لینوکس
با انجام این کار و افزودن مخازن این پلتفرم به سیستم خود می توانید به راحتی در آینده با استفاده از دستور yum update ابزار Openresty را بروز رسانی کنید. مخازن مورد نظر در راکی لینوکس به صورت زیر اضافه می شود. همچنین، توجه داشته باشید که شما باید wget را با دستور sudo yum install wget نصب کنید:
wget https://openresty.org/package/centos/openresty.repo
sudo mv openresty.repo /etc/yum.repos.d/
حال باید با دستور زیر ایندکس بسته نصب YUM خود را بروز رسانی کنید:
sudo yum check-update
مرحله 2: نصب Openresty در راکی لینوکس با مخزن YUM
با گذراندن مراحل بالا اکنون شما آماده هستید تا Openresty را در سیستم راکی لینوکس خود به وسیله YUM نصب کنید:
sudo yum install openresty
نمودار درختی به صورت زیر نشان داده می شود:
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
openresty x86_64 1.19.9.1-1.el8 openresty 1.1 M
Installing dependencies:
openresty-openssl111 x86_64 1.1.1k-1.el8 openresty 1.6 M
openresty-pcre x86_64 8.44-1.el8 openresty 169 k
openresty-zlib x86_64 1.2.11-3.el8 openresty 59 k
Transaction Summary
================================================================================
Install 4 Packages
Total download size: 2.9 M
Installed size: 8.1 M
Is this ok [y/N]: y
حال با دستور مورد نظر به کلید GPG اجازه ورود دهید:
Importing GPG key 0xD5EDEB74:
Userid : "OpenResty Admin <[email protected]>"
Fingerprint: E522 18E7 0878 97DC 6DEA 6D6D 97DB 7443 D5ED EB74
From : https://openresty.org/package/pubkey.gpg
Is this ok [y/N]: y
ممکن است نیاز باشد که شما ابزار خط فرمان Openresty را نیز نصب کنید، که در این صورت به روش زیر اقدام خواهید کرد:
sudo yum install openresty-resty
سپس، تمام بسته های نصب در دسترس مخزن Openresty را با بکارگیری دستور مورد نیاز فهرست کنید:
sudo yum --disablerepo="*" --enablerepo="openresty" list available
مرحله آخر: شروع و راه اندازی Openresty
پس از نصب موفقیت آمیز وب سرور Openresty در سیستم راکی لینوکس، اکنون می توانید این سرویس را با دستور زیر راه اندازی کنید:
sudo systemctl enable openresty
sudo systemctl start openresty
روش دوم: نصب Openresty در راکی لینوکس از طریق source code
روش دومی که برای نصب Openresty وجود دارد از طریق source code می باشد که مراحل نصب آن به صورت گام به گام در زیر برای شما نمایش داده شده است.
مرحله 1: دانلود ابزار Openresty
ابتدا باید پیش نیازهای لازم برای نصب را به کمک دستور زیر نصب کنید:
sudo yum install pcre-devel openssl-devel gcc curl perl
توجه داشته باشید که اگر سرویس Nginx در سیستم شما در حال اجرا است باید اول آن را متوقف کنید. می توانید از دستورهای زیر استفاده کنید:
sudo systemctl disable nginx
sudo systemctl stop nginx
پس از طی کردن مراحل بالا، در این راهنما، اکنون پلتفرم وب Openresty را روی راکی لینوکس با استفاده از بسته های باینری نصب کنید. ابتدا باید آخرین بسته Openresty را از صفحه اصلی آن دانلود کنید. نسخه مورد نظر را می توان با استفاده از دستور wget زیر دانلود کرد. البته حتما باید wget روی سیستم شما نصب شده باشد که دستور آن به صورت sudo yum install wget است.
wget https://openresty.org/download/openresty-1.19.9.1.tar.gz
مرحله 2: نصب Openresty در راکی لینوکس با source code
پس از دانلود موفقیت آمیز tarball، باید با جابجایی openresty-VERSION.tar.gz با نسخه دانلود شده شما، tar را با استفاده از دستور sudo yum install tar نصب کنید:
tar -xvf openresty-VERSION.tar.gz
حالا با دستور زیر درون دایرکتوری پیمایش کنید:
cd openresty-VERSION/
در این قسمت، با دستور مناسب Openresty را ایجاد کنید:
https://azarsys.com/wp-content/themes/azarsys/clientconfigure -j2
make -j2
اکنون می توانید نصب را انجام دهید:
sudo make install
پس از اتمام نصب، باید Openresty حالت export را به مسیر این پلتفرم که به صورت فایل bashrc. /~ یا bash_profile. /~ می باشد، با دستور زیر اضافه کنید:
export PATH=/usr/local/openresty/bin:$PATH
به طور پیش فرض، Openresty در دایرکتوری /usr/local/openresty/ نصب می شود. سپس، باید ابزارهای خط فرمان ارائه شده را به مسیر این ابزار به صورت زیر اضافه کنید:
export PATH=/usr/local/openresty/bin:/usr/local/openresty/nginx/sbin:$PATH
مرحله 4: ایجاد سرویس systemd برای Openresty
در این مرحله، باید سرویس openresty را به عنوان یک سرویس systemd معمولی مدیریت کنید. یعنی جایی که ان را مانند سایر سرویس های systemd شروع، فعالسازی و مدیریت می کنید.
در نهایت با ایجاد یک سرویس systemd، حالت زیر به دست می آید:
sudo you /etc/systemd/system/openresty.service
در فایل ایجاد شده محتوای زیر را قرار دهید:
[Unit]
Description=A dynamic web platform based on Nginx and LuaJIT.
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStartPre=/usr/local/openresty/bin/openresty -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/openresty/bin/openresty -g 'daemon on; master_process on;'
ExecReload=/usr/local/openresty/bin/openresty -g 'daemon on; master_process on;' -s reload
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
اکنون تغییرات را ذخیره کرده و خارج شوید. deamon را مجددا بارگذاری کنید:
sudo systemctl daemon-reload
سپس، می توانید سرویس Openresty را برای اجرا در هنگام بوت، راه اندازی و فعال کنید:
sudo systemctl enable openresty.service
sudo systemctl start openresty.service
با دستور زیر وضعیت سرویس Openresty را می توانید مشاهده کنید:
sudo systemctl status openresty
آزمایش Openresty با برنامه Hello World
یک راه ساده برای چاپ خروجی Hello World در ترمینال با استفاده از دستور resty وجود دارد که به صورت زیر می تون آن را انجام داد:
resty -e 'print("hello, world")'
hello, world
این خروجی را می تواند در سرور HTTP نیز به صورت زیر اجرا کرد:
در ابتدا، با نصب resty، محیط ابزار PATH باید به طور پیش فرض قابل مشاهده باشد. در غیر این صورت PATH باید به صورت زیر ایجاد شود:
export PATH=/usr/local/openresty/bin:$PATH
پیشوند نصب پیش فرض برای Openresty به صورت دستور /usr/local/openresty/ است که فرض می کنیم شما از آن استفاده کرده اید.
آماده سازی طرح دایرکتوری
با دستور زیر می توانید یک دایرکتوری فعال برای آزمایش Openresty ایجاد کنید:
mkdir ~/work
cd ~/work
mkdir logs/ conf/
در این قسمت، دستور ایجاد دایرکتوری Logs برای ورود و Conf برای پیکربندی فایل ها نیز وجود دارد.
ایجاد فایل پیکربندی Nginx.conf
حال یک فایل پیکربندی با نام Nginx.conf در دایرکتوری ایجاد می کنیم:
sudo vi ~/work/conf/nginx.conf
سپس، محتوای زیر را اضافه کنید:
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, world</p>")
حالا می توانید سرور Nginx را آغاز کنید:
با نصب Openresty در دایرکتوری usr/local/openresty/، اکنون می توانید سرور Nginx را به راحتی اجرا کنید:
PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH
سپس، با دستور زیر می توانید Nginx را آغاز کنید:
nginx -p `pwd`/ -c conf/nginx.conf
دسترسی به وب سرور Hello WORLD
اکنون می توانید با دستور curl به وب سرور دسترسی پیدا کنید:
resty -e 'print("hello, world")'
hello, world
این خروجی را می تواند در سرور HTTP نیز به صورت زیر اجرا کرد:
در ابتدا، با نصب resty، محیط ابزار PATH باید به طور پیش فرض قابل مشاهده باشد. در غیر این صورت PATH باید به صورت زیر ایجاد شود:
export PATH=/usr/local/openresty/bin:$PATH
پیشوند نصب پیش فرض برای Openresty به صورت دستور /usr/local/openresty/ است که فرض می کنیم شما از آن استفاده کرده اید.
آماده سازی طرح دایرکتوری
با دستور زیر می توانید یک دایرکتوری فعال برای آزمایش Openresty ایجاد کنید:
mkdir ~/work
cd ~/work
mkdir logs/ conf/
در این قسمت، دستور ایجاد دایرکتوری Logs برای ورود و Conf برای پیکربندی فایل ها نیز وجود دارد.
ایجاد فایل پیکربندی Nginx.conf
حال یک فایل پیکربندی با نام Nginx.conf در دایرکتوری ایجاد می کنیم:
sudo vi ~/work/conf/nginx.conf
سپس، محتوای زیر را اضافه کنید:
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, world</p>")
حالا می توانید سرور Nginx را آغاز کنید:
با نصب Openresty در دایرکتوری usr/local/openresty/، اکنون می توانید سرور Nginx را به راحتی اجرا کنید:
PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH
سپس، با دستور زیر می توانید Nginx را آغاز کنید:
nginx -p `pwd`/ -c conf/nginx.conf
دسترسی به وب سرور Hello WORLD
اکنون می توانید با دستور curl به وب سرور دسترسی پیدا کنید:
curl http://localhost:8080/
نکته: سرویس Openresty بر روی پورت 8080 اجرا می شود. می توانید از طریق فایروال برای پورت اقدام کنید:
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
در نهایت با مرورگر خود و درج آدرس زیر به وب سرور دسترسی پیدا کنید:
http://IP_Address:8080/
Openresty که در اینجا به آن اشاره شده، وب سرور مناسبی برای اجرای برنامه های server-side در Nginx، درون سرورهای لینوکس می باشد و یک برنامه کامل است. شما می توانید برای استفاده از مزایای آن، سرورهای مجازی و یا سرورهای اختصاصی مناسب نیازهای خود را از سایت آذرسیس ما تهیه کنید و در صورت نیاز از راهنمایی ها و پشتیبانی کارشناسان ما بهره مند شوید. در صورت تمایل به خرید این سرورها می توانید یک تیکت به بخش پشتیبانی ارسال کنید.
نتیجه گیری
ما در این مقاله دو روش کاربردی برای نصب وب سرور Openresty را در راکی لینوکس برای شما آموزش دادیم. همچنین راهی را نشان دادیم تا شما بتوانید پس از نصب وب سرور خود را آزمایش کنید. اکنون می توانید به راحتی از این وب سرور در سیستم راکی لینوکس استفاده کنید. امیدواریم مقاله فوق برای شما مفید واقع شده باشد. از همراهی شما متشکریم.