安装OpenResty

Web技术 jikk345 708℃ 0评论

1、下载openresty1.9.7.1

我们首先要在官网下载 OpenResty 的源码包。官网上会提供很多的版本,各个版本有什么不同也会有说明,我们可以按需选择下载。 笔者选择下载的源码包为 ngx_openresty-1.9.7.1.tar.gz(请大家跟进使用最新版本,这里只是个例子)。  
  1. [root@API-Cache tools]# wget https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz
  2. [root@API-Cache tools]# tar -zxvf ngx_openresty-1.9.7.1.tar.gz
  3. [root@API-Cache tools]# cd ngx_openresty-1.9.7.1
  4. [root@API-Cache ngx_openresty-1.9.7.1]# ls
  5. bundle configure COPYRIGHT README.markdown README-win32.txt util

2、安装依赖包OpenSSL和Pcre
将这些相关的库perl 5.6.1+,libreadline, libpcre, libssl安装在系统中。 按照以下步骤:
输入以下命令yum install readline-devel pcre-devel openssl-devel perl,一次性安装需要的库。
相关库安装成功。安装成功后会有 “Complete!” 字样。
注:本次我服务器上没有装GCC,有报错,所以补充yum -y install gcc命令
  1. [root@API-Cache ngx_openresty-1.9.7.1]# yum install readline-devel pcre-devel openssl-devel perl -y
3、安装openresty
(a)在命令行中切换到源码包所在目录。
(b)解压源码包,tar xzvf ngx_openresty-1.9.7.1.tar.gz。若你下载的源码包版本不一样,将相应的版本号改为你所下载的即可。
(c)切换工作目录到 cd ngx_openresty-1.9.7.1。
(d)了解默认激活的组件。OpenResty 官网有组件列表,我们可以参考,列表中大部分组件默认激活,也有部分默认不激活。 默认不激活的组件,我们可以在编译的时激活,后面步骤详说明。
(e)配置安装目录及需要激活的组件。使用选项 –prefix=install_path,指定安装目录(默认为/usr/local/openresty)。
使用选项 –with-Components 激活组件,–without 则是禁止组件。 你可以根据自己实际需要选择 with 或 without。如下命令,OpenResty 将配置安装在 /opt/openresty 目录下(注意使用 root 用户),并激活luajit、http_iconv_module 并禁止 http_redis2_module 组件。
  1. [root@API-Cache ngx_openresty-1.9.7.1]# ./configure --with-luajit --without-http_redis2_module --with-http_iconv_module --with-http_stub_status_module
  2. [root@API-Cache ngx_openresty-1.9.7.1]# gmake
  3. [root@API-Cache ngx_openresty-1.9.7.1]# gmake install
在上一步中,最后没有什么 error 的提示就是最好的。若有错误,最后会显示 具体原因可以看源码包目录下的 build/nginx-VERSION/objs/autoconf.err文件查看。若没有错误,则会出现如下信息:

4、使用nginx打印hello world!
  1. [root@Qinglin-Student conf]# vim nginx.conf
  2. server {
  3. listen 8080;
  4. server_name localhost;
  5. #charset koi8-r;
  6. #access_log logs/host.access.log main;
  7. location / {
  8. root html;
  9. index index.html index.htm;
  10. }
  11. location /qinglin {
  12. default_type text/html;
  13. content_by_lua '
  14. ngx.say("<p>hello, world</p>")
  15. ';
  16. }
  17. [root@Qinglin-Student conf]# /usr/local/nginx/sbin/nginx -t
  18. nginx: the configuration file /usr/local//nginx/conf/nginx.conf syntax is ok
  19. nginx: configuration file /usr/local//nginx/conf/nginx.conf test is successful
  20. [root@Qinglin-Student conf]# /usr/local/nginx/sbin/nginx
  21. [root@Qinglin-Student conf]# curl localhost:8080/qinglin
  22. <p>hello, world</p>
5、将lua脚本include到相关路径并调用
(a)创建lua目录与脚本,并在脚本中植入“hello qinglin!!”
  1. [root@Qinglin-Student conf]# mkdir /usr/local/openresty/nginx/lua/ -p
  2. [root@Qinglin-Student conf]# cd /usr/local/openresty/nginx/lua/
  3. [root@Qinglin-Student lua]# vim hello.lua
  4. ngx.say "hello qinglin!!!"
(b)修改nginx文件,增加content_by_lua_file模块后平滑重启
  1. [root@Qinglin-Student lua]# vim /usr/local/openresty/nginx/conf/nginx.conf server {
  2. listen 80;
  3. server_name localhost;
  4. location / {
  5. root html;
  6. index index.html index.htm;
  7. }
  8. location /qinglin {
  9. content_by_lua_file lua/hello.lua;
  10. }
  11. [root@Qinglin-Student lua]# /usr/local/openresty/nginx/sbin/nginx -t
  12. nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
  13. nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
  14. [root@Qinglin-Student lua]# /usr/local/openresty/nginx/sbin/nginx -s reload
(c)测试
  1. [root@Qinglin-Student lua]# curl localhost/qinglin
  2. hello qinglin!!!
6、关闭lua的缓存(了解,可用于调试)
如果需要调整,不需要重启nginx就使用lua生效,就要关掉”lua_code_cache“模块
lua_code_cache 这个指令在生产环境不要关闭,容易影响性能。
可以用在:http, server, location, location if   
本次用在location中
(a) 增加lua_code_cache off;
  1. [root@Qinglin-Student conf]# vim /usr/local/openresty/nginx/conf/nginx.conf
  2. server {
  3. listen 80;
  4. server_name localhost;
  5. #charset koi8-r;
  6. #access_log logs/host.access.log main;
  7. location / {
  8. root html;
  9. index index.html index.htm;
  10. }
  11. location /qinglin {
  12. lua_code_cache off;
  13. content_by_lua_file lua/hello.lua;
  14. }
(b)平滑重启,会提醒你关闭lua缓存会影响性能
  1. [root@Qinglin-Student conf]# /usr/local/openresty/nginx/sbin/nginx -t
  2. nginx: [alert] lua_code_cache is off; this will hurt performance in /usr/local/openresty/nginx/conf/nginx.conf:48
  3. nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
  4. nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
  5. [root@Qinglin-Student conf]# /usr/local/openresty/nginx/sbin/nginx -s reload
  6. nginx: [alert] lua_code_cache is off; this will hurt performance in /usr/local/openresty/nginx/conf/nginx.conf:48
(c)测试,修改lua文件,不重启即可生效
  1. [root@Qinglin-Student conf]# vim ../lua/hello.lua
  2. ngx.say "hello lin!!!"
  3. [root@Qinglin-Student conf]# curl localhost/qinglin
  4. hello lin!!!

转载请注明:清麟博客 » 安装OpenResty

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址