XÂY DỰNG WEB SERVER CHO GATEWAY

OpenResty là một máy chủ web mở rộng Nginx bằng cách gói nó với nhiều mô-đun Nginx hữu ích và thư viện Lua. OpenResty vượt trội trong việc mở rộng các ứng dụng và dịch vụ web. Ví dụ: một mô-đun mà nó bao gồm cho phép bạn viết mã Lua sẽ thực thi trực tiếp trong Nginx worker, cho phép các ứng dụng chạy với hiệu suất cao.

Trong hướng dẫn này, bạn sẽ cài đặt OpenResty từ source code; các gói ứng dụng được tạo sẵn cho một số bản phân phối linux có thể đã lỗi thời. Bạn cũng sẽ khám phá một số ứng dụng mẫu đơn giản với các tính năng độc đáo của OpenResty.

Để làm theo hướng dẫn này, bạn sẽ cần:

  • Một máy tính dùng Ubuntu 20 hoặc một board máy tính nhúng sử dụng phiên bản Linux tương đương với Ubuntu 20.

  • Không nên cài đặt Nginx. Nginx đã được tích hợp sẳn trong OpenResty, nếu bạn tự cài sẽ dễ gây xung đột.

1. Cài đặt OpenResty trên Linux distro

Cài đặt các gói package cần thiết

sudo apt-get install git libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential perl make libssl-dev

Lấy source code

wget https://openresty.org/download/openresty-1.21.4.1.tar.gz

Giải nén source vào /opt

sudo tar -xvf openresty-1.21.4.1.tar.gz -C /opt

Đi đến thư mục source openresty

cd /opt/openresty-1.21.4.1

Config openresty để biên dịch

./configure --with-cc-opt="-I/usr/include/openssl -I/usr/include" --with-ld-opt="-L/usr/include/openssl -L/usr/include" -j8 --prefix=/opt/openresty-1.21.4.1 --with-pcre-jit --with-ipv6

Biên dịch source code

make -j8

Install tools và thư viện đã được biên dịch

sudo make install

2. Tạo một ứng dụng đơn giản để thử nghiệm OpenResty

Tạo các thư mục chứa application

mkdir ~/app
cd ~/app
mkdir logs/ conf/

Tạo file cấu hình Nginx

Nội dung file ~/app/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 '
                ngx.say("<p>hello, world</p>")
            ';
        }
    }
}

Chạy sample web app

Để chạy sample web app chúng ta cần add đường dẫn file binary nginx đã được biên dịch trong OpenResty

PATH=/opt/openresty-1.21.4.1/nginx/sbin:$PATH
export PATH
nginx -p `pwd`/ -c ~/app/conf/nginx.conf

Test chạy web app với curl

curl http://localhost:8080/

Kết quả output phải là:

<p>hello, world</p>

3. Lapis

Lapis là gì ?

Lapis là một framework để xây dựng các ứng dụng web sử dụng MoonScript hoặc Lua chạy bên trong một phiên bản tùy chỉnh của Nginx có tên là OpenResty.

Cài đặt Lapis

sudo apt-get install luarocks
sudo luarocks install moonscript
sudo luarocks install lapis
sudo luarocks install --server=http://rocks.moonscript.org/manifests/leafo lapis

Tạo một sample để test chạy

mkdir lapistest
cd lapistest
lapis new --lua
lapis server

Lapis hỗ trợ tạo một sample ứng dụng tự động

mkdir lapistest
cd lapistest
lapis new --lua
lapis server

Test application với curl

curl http://localhost:8080

Bạn sẽ thấy output như sau

Welcome to Lapis 1.9.0

Test trên browser

http://192.168.1.200:8080/