在 Ubuntu 上使用原始碼安裝 OpenResty
阿新 • • 發佈:2021-12-21
映象下載、域名解析、時間同步請點選阿里雲開源映象站
本文將介紹如何在 Ubuntu 上使用原始碼安裝 OpenResty。
目標
- Ubuntu 18.04
- OpenResty 1.19.3.2
安裝依賴
- 啟用HTTP 基本狀態模組:
--with-http_stub_status_module
- 啟用HTTP gzip 靜態檔案壓縮模組:--with-http_gzip_static_module
- 啟用HTTP/2 模組:--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</pre>
下載 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</pre>
安裝 OpenResty
.configure \
--with-http_gzip_static_module \
--with-http_v2_module \
--with-http_stub_status_module
make
make install</pre>
使用 systemd 管理 OpenResty 服務
編寫 Service 檔案
在/usr/lib/systemd/system
目錄下建立一個openresty.service
檔案,檔案內容如下:
# 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</pre>
啟動 OpenResty
# 設定自啟動
systemctl enable openresty
# 啟動 OpenResty
systemctl start openresty
# 檢視 OpenResty 服務狀態
systemctl status openresty
● 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 process /usr/local/openresty/nginx/sbin/nginx -g daemon on; 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.</pre>