This article will show you how to install OpenResty on Ubuntu using the source code.

The target

  • Ubuntu 18.04
  • OpenResty 1.19.3.2

Install dependencies

  • To enable theHTTP basic state module:--with-http_stub_status_module
  • Enable HTTP GZIP static file compression module: –with-http_gzip_static_module
  • Enable HTTP/2 modules: –with-http_v2_module

zlib1g-dev: the HTTP gzip module requires the zlib library.

apt-get update -y
apt-get install -y libpcre3-dev \
  libssl-dev \
  perl \
  make \
  build-essential \
  curl \
  zlib1g-dev

Download OpenResty

CD/opt curl - LO, https://openresty.org/download/openresty-1.19.3.2.tar.gz tar ZXF openresty - 1.19.3.2. Tar. Gz

Install OpenResty

.configure \
  --with-http_gzip_static_module \
  --with-http_v2_module \
  --with-http_stub_status_module

make
make install

Use Systemd to manage OpenRESTY services

Write a Service file

Create an OpenResty. Service file in /usr/lib/systemd/system with the following contents:

# Stop dance for OpenResty # ========================= # # ExecStop sends SIGSTOP (graceful stop) to OpenResty's nginx process. # If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control # and sends SIGTERM (fast shutdown) to the main process. # After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends # SIGKILL to all the remaining processes in the process group (KillMode=mixed). # # nginx signals reference doc: # http://nginx.org/en/docs/control.html # [Unit] Description=The OpenResty Application Platform After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/usr/local/openresty/nginx/logs/nginx.pid ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -q -g 'daemon on; master_process on; ' ExecStart=/usr/local/openresty/nginx/sbin/nginx -g 'daemon on; master_process on; ' ExecReload=/usr/local/openresty/nginx/sbin/nginx -g 'daemon on; master_process on; ' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /usr/local/openresty/nginx/logs/nginx.pid TimeoutStopSec=5 KillMode=mixed [Install] WantedBy=multi-user.target

Start the OpenResty

# # set to start since systemctl enable openresty start openresty systemctl start openresty # check openresty service status systemctl status OpenResty. Service - The OpenResty Application Platform Loaded: loaded (/usr/lib/systemd/system/openresty.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-07-10 11:36:07 CST; 26min ago Process: 12735 ExecStart=/usr/local/openresty/nginx/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 12734 ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 12736 (nginx) Tasks: 2 (limit: 1126) CGroup: / system. Slice/openresty service ├ ─ 12736 nginx: master the process/usr/local/openresty/nginx/sbin/nginx - daemon on g; master_process on; ├ ─12737 nginx: worker process Jul 10 11:36:07 iZj6c0qglm7rjjctj7zxnfZ systemd[1]: Starting The OpenResty Application Platform... Jul 10 11:36:07 iZj6c0qglm7rjjctj7zxnfZ systemd[1]: openresty.service: Failed to parse PID from file /usr/local/openresty/nginx/logs/nginx.pid: Jul 10 11:36:07 iZj6c0qglm7rjjctj7zxnfZ systemd[1]: Started The OpenResty Application Platform.

One click to install the script

GitHub Gist