溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

[原創(chuàng)]CentOS7編譯安裝OpenResty1.15.8.2(填坑之旅)

發(fā)布時(shí)間:2020-04-08 14:30:24 來源:網(wǎng)絡(luò) 閱讀:3470 作者:卓格 欄目:系統(tǒng)運(yùn)維

原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處:https://blog.51cto.com/indian/2445786

一、安裝前置環(huán)境

1、編譯工具安裝

yum install -y epel-release
yum install -y gcc gcc-c++ curl

2、調(diào)整系統(tǒng)時(shí)區(qū)

date
timedatectl
sudo timedatectl set-timezone Asia/Shanghai
sudo dnf install -y chrony

3、其它自己需要的工具

yum install -y vim man tree screen wget bash-completion tcp_wrappers lrzsz

二、openresty編譯安裝

1、依賴庫
您必須將這些庫 perl 5.6.1+, libpcre, libssl安裝在您的電腦之中。 對(duì)于 Linux來說, 您需要確認(rèn)使用 ldconfig 命令,讓其在您的系統(tǒng)環(huán)境路徑中能找到它們。

yum install pcre-devel openssl-devel

2、設(shè)置專用用戶和組及相關(guān)目錄

groupadd www
useradd -r -g www -s /sbin/nologin -M www
mkdir -pv /data/{src,local}/
mkdir -pv /data/logs/nginx
chown -R www:www /data/logs/nginx

3、下載相關(guān)軟件和模塊

cd /data/src
wget -c -P '/data/src/' 'https://github.com/winshining/nginx-http-flv-module/archive/v1.2.7.tar.gz' -O 'nginx-http-flv-module-1.2.7.tar.gz'
wget -c -P '/data/src' 'https://openresty.org/download/openresty-1.15.8.2.tar.gz'

注意,不要用X寶的“echo-nginx-module”模塊(坑之一),用了這個(gè)模塊后編譯出錯(cuò),我就在這里踩坑了,折騰了好久。

4、開始安裝

cd /data/src
tar -xzf nginx-http-flv-module-1.2.7.tar.gz
tar -xzf openresty-1.15.8.2.tar.gz
cd openresty-1.15.8.2/
./configure \
--prefix=/data/local/openresty-1.15.8.2 \
--sbin-path=/usr/sbin/openresty \
--user=www \
--group=www \
--with-luajit \
--with-http_ssl_module \
--with-http_iconv_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_addition_module \
--add-module=/data/src/nginx-http-flv-module-1.2.7

gmake -j `grep processor /proc/cpuinfo | wc -l` && make install

nginx-http-flv-module 是流媒體模塊,是“nginx-rtmp-module”模塊的升級(jí)版。具體見我的另一篇筆記《[原創(chuàng)]openresty搭建流媒體》。
試著使用 ./configure --help 查看更多的選項(xiàng)。
配置文件(./configure script)運(yùn)行出錯(cuò)可以到 build/nginx-VERSION/objs/autoconf.err 找到。 VERSION 的地方必須與OpenResty版本號(hào)相對(duì)應(yīng), 比如 0.8.54.6。
全程如果沒有報(bào)錯(cuò),最后出現(xiàn)“l(fā)n -sf /usr/sbin/openresty /data/local/openresty-1.15.8.2/bin/openresty”就表明編譯安裝成功了。

[原創(chuàng)]CentOS7編譯安裝OpenResty1.15.8.2(填坑之旅)

5、校驗(yàn)

[root@node1 ~]# openresty -v
nginx version: openresty/1.15.8.2

6、安裝成功后的編譯參數(shù)

[root@node1 ~]# openresty -V
nginx version: openresty/1.15.8.2
built by gcc 8.3.0 (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/data/local/openresty-1.15.8.2/nginx --with-cc-opt=-O2 --add-module=../ngx_devel_kit-0.3.1rc1 --add-module=../iconv-nginx-module-0.14 --add-module=../echo-nginx-module-0.61 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../srcache-nginx-module-0.31 --add-module=../ngx_lua-0.10.15 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15 --add-module=../rds-csv-nginx-module-0.09 --add-module=../ngx_stream_lua-0.0.7 --with-ld-opt=-Wl,-rpath,/data/local/openresty-1.15.8.2/luajit/lib --sbin-path=/usr/sbin/openresty --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_secure_link_module --with-http_stub_status_module --with-http_addition_module --add-module=/data/src/nginx-http-flv-module-1.2.7 --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module
[root@node1 ~]# 

注意問題:

1、編譯參數(shù)問題
如果編譯參數(shù)帶下面這3個(gè)參數(shù)

--with-pcre=/data/src/pcre-8.43 \
--with-zlib=/data/src/zlib-1.2.11 \
--with-openssl=/data/src/openssl-1.1.1d \

這3個(gè)參數(shù)后面的路徑,不是指它們的安裝路徑,而是下載對(duì)應(yīng)的包,再解壓后的路徑。我就在這里踩坑N久(坑之二)。

包下載地址參考:

https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
http://zlib.net/zlib-1.2.11.tar.gz
https://www.openssl.org/source/openssl-1.1.1d.tar.gz

如果不加這3個(gè)參數(shù),編譯時(shí)會(huì)自動(dòng)調(diào)用系統(tǒng)庫,前提是yum安裝了著3個(gè)軟件的devel包(見前面)。如果在make時(shí)出現(xiàn)下列信息,就表明調(diào)用成功,否則要安裝它們的庫文件。

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

三、啟動(dòng)

shell> ss -tnl      #查看啟動(dòng)的端口
shell> openresty    #啟動(dòng)
shell> ss -tnl      #查看openresty開放的端口是否啟動(dòng)
shell> openresty -s stop    #停止
shell> openresty -s reload   #重載
shell> openresty -t   #語法檢查

openresty 命令幫助,與nginx用法類似,可以加 “-c”調(diào)用配置文件

[root@node1 openresty-1.15.8.2]# openresty -h
nginx version: openresty/1.15.8.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /data/local/openresty-1.15.8.2/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

[root@node1 openresty-1.15.8.2]# openresty

四、測(cè)試
瀏覽器輸入:http://你測(cè)試機(jī)器IP/
如果瀏覽器沒有顯示,放行防火墻端口:

sudo ss -tnl
sudo cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

或關(guān)閉防火墻:

systemctl stop firewalld.service
ss -tnl

如果覺得本文對(duì)你有幫助,請(qǐng)給我點(diǎn)攢或回應(yīng)評(píng)論,謝謝!

英文版:https://github.com/openresty/openresty/issues/551

原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處:https://blog.51cto.com/indian/2445786

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI