Ubuntu 24.04.2 LTS搭建Openresty

一、环境

ubuntu@ubuntu:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
ubuntu@ubuntu:~$

二、准备

sudo apt-get install libreadline-dev libpcre3-dev libssl-dev perl -y
sudo  apt-get install libpcre3-dev   libssl-dev perl make build-essential curl
sudo apt install build-essential gcc make
sudo apt install zlib1g zlib1g-dev

三、安装

su - root
./configure --with-pcre-jit
cd ~
wget https://openresty.org/download/openresty-1.27.1.1.tar.gz
tar xzvf openresty-1.27.1.1.tar.gz

cd openresty-1.27.1.1
./configure --with-pcre-jit --with-ipv6
make && make install

四、启动

mkdir ~/work
cd ~/work
mkdir logs/ conf/

Create a simple plain text file named conf/nginx.conf with the following contents in it:

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>")
            }
        }
    }
}

五、命令

指定配置启动,注意目录位置

# 加载环境变量如果没有配置
export PATH=/usr/local/openresty/bin:$PATH
# 指定配置启动 openresty
openresty -p ./ -c conf/nginx.conf
# 优雅退出
openresty -p . -s stop
openresty -p . -s quit
# 重启 openresty
openresty -p . -s reload

-p 是指定目录
也可以直接运行 openresty 加载默认配置。

六、效果

指定配置效果:



默认配置效果:



至此,搭建完毕。相对还是比较简单的,后续如何使用Lua进行配置,就会复杂很多。有了Lua 加持,可以直接访问redis、mysql 等资源,灵活度会非常的高,这就是使用Openresty的价值。

附录:

自己编译openresty 如何开机自启动

步骤:
创建服务文件:
在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 openresty.service。

sudo nano /etc/systemd/system/openresty.service

编辑服务文件:
输入以下内容(根据你的 OpenResty 安装路径进行调整):

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
# 指定PID文件的路径,确保与Nginx配置中的路径一致
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
# 指定Nginx可执行文件的路径
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t
ExecStart=/usr/local/openresty/nginx/sbin/nginx
# 重新加载Nginx配置时使用的命令
ExecReload=/bin/kill -s HUP $MAINPID
# 停止Nginx服务时使用的命令
ExecStop=/bin/kill -s QUIT $MAINPID
# 设置PrivateTmp为true,以确保每个服务有自己的临时空间
PrivateTmp=true
[Install]
WantedBy=multi-user.target

重新加载 systemd:

sudo systemctl daemon-reload

启动并使服务开机自启:

sudo systemctl start openresty.service
sudo systemctl enable openresty.service

检验是否安装成功
执行命令:

 mkdir ~/work
 cd ~/work
 mkdir logs/ conf/
  ls
 vim conf/nginx.conf
 openresty -p `pwd`/ -c conf/nginx.conf
 ps -ef|grep nginx

服务器执行命令,看到出现hello,world时,即安装成功。

root:~/work# curl http://localhost:8080/
<p>hello, world</p>
root:~/work#

也可登录浏览器,访问服务器地址,能出现hello, world,即按照成功。

优化配置,添加目录加载配置文件:
在vim nginx.conf 中,最下面添加:

# 添加目录加载
include /usr/local/openresty/nginx/conf.d/*.conf;
include /usr/local/openresty/nginx/sites-enabled/*;

再创建目录

mkdir -p /usr/local/openresty/nginx/conf.d/
mkdir -p /usr/local/openresty/nginx/sites-enabled/

这样,就可以把配置拆分成文件,而不是配置在一个文件中了。

posted @ 2025-05-05 01:53  刘文江  阅读(222)  评论(0)    收藏  举报  来源