前篇介绍了OpenResty核心概念,优势与架构等信息,进行本篇之前建议至少观看一遍。OpenResty--------企业级理论实践篇
本篇将进行OpenResty的安装与编写第一个应用过程。
注:本篇采用CentOS 7(7.4)系统成都创新互联公司网站建设公司,提供成都网站制作、成都网站设计,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@localhost ~]# uname -r
3.10.0-693.el7.x86_64
[root@localhost ~]# ifconfig
eth0: flags=4163 mtu 1500
inet 192.168.0.254 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::fb69:bc45:9e19:5b06 prefixlen 64 scopeid 0x20
ether 00:0c:29:be:2d:43 txqueuelen 1000 (Ethernet)
RX packets 3197 bytes 793326 (774.7 KiB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 330 bytes 59828 (58.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# setenforce 0
[root@localhost ~]# iptables -F
[root@localhost ~]# yum install readline-devel -y
[root@localhost ~]# yum install pcre-devel -y
[root@localhost ~]# yum install openssl-devel -y
[root@localhost ~]# yum install perl -y
[root@localhost ~]# wget https://github.com/openresty/openresty/releases/download/v1.13.6.2/openresty-1.13.6.2.tar.gz
--2019-08-01 02:35:30-- https://github.com/openresty/openresty/releases/download/v1.13.6.2/openresty-1.13.6.2.tar.gz
Resolving github.com (github.com)... 13.229.188.59
Connecting to github.com (github.com)|13.229.188.59|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/480080/5565c880-1ef7-11e9-9fb6-06daa71b014c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190731%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190731T103531Z&X-Amz-Expires=300&X-Amz-Signature=cc703e1769ba14abd394befcd43e7fb26be92ba53e592da53052931ae89f6bf8&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dopenresty-1.13.6.2.tar.gz&response-content-type=application%2Foctet-stream [following]
--2019-08-01 02:35:31-- https://github-production-release-asset-2e65be.s3.amazonaws.com/480080/5565c880-1ef7-11e9-9fb6-06daa71b014c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190731%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190731T103531Z&X-Amz-Expires=300&X-Amz-Signature=cc703e1769ba14abd394befcd43e7fb26be92ba53e592da53052931ae89f6bf8&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dopenresty-1.13.6.2.tar.gz&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.217.36.4
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.217.36.4|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4635916 (4.4M) [application/octet-stream]
Saving to: ‘openresty-1.13.6.2.tar.gz’
100%[==========================================================================>] 4,635,916 2.28MB/s in 1.9s
2019-08-01 02:35:34 (2.28 MB/s) - ‘openresty-1.13.6.2.tar.gz’ saved [4635916/4635916]
[root@localhost ~]# tar xf openresty-1.13.6.2.tar.gz
[root@localhost ~]# ls -l openresty-1.13.6.2
total 96
drwxrwxr-x 43 1000 1000 4096 May 15 2018 bundle
-rwxrwxr-x 1 1000 1000 48140 May 15 2018 configure
-rw-rw-r-- 1 1000 1000 22924 May 15 2018 COPYRIGHT
drwxrwxr-x 2 1000 1000 156 May 15 2018 patches
-rw-rw-r-- 1 1000 1000 4689 May 15 2018 README.markdown
-rw-rw-r-- 1 1000 1000 8972 May 15 2018 README-windows.txt
drwxrwxr-x 2 1000 1000 52 May 15 2018 util
[root@localhost ~]# cd openresty-1.13.6.2
[root@localhost openresty-1.13.6.2]# ./configure \
--prefix=/usr/local/openresty-1.13.6.2 \
--with-luajit \
--without-http_redis2_module \
--with-http_iconv_module
[root@localhost openresty-1.13.6.2]# gmake
[root@localhost openresty-1.13.6.2]# gmake install
[root@localhost openresty-1.13.6.2]# ln -s /usr/local/openresty-1.13.6.2 /usr/local/openresty
[root@localhost openresty-1.13.6.2]# cat /usr/local/openresty/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
[root@localhost openresty-1.13.6.2]# /usr/local/openresty/bin/openresty -p /usr/local/openresty/nginx/
访问成功,OpenResty已经成功返回页面。
[root@localhost openresty-1.13.6.2]# cd ~
[root@localhost ~]# mkdir -vp openresty-test01/{logs,conf}
mkdir: created directory ‘openresty-test01’
mkdir: created directory ‘openresty-test01/logs’
mkdir: created directory ‘openresty-test01/conf’
[root@localhost ~]# tree openresty-test01/
openresty-test01/
├── conf
└── logs
2 directories, 0 files
注意: 如果你安装的是 openresty 1.9.3.1 及以下版本,请使用 content_by_lua 命令代替示例中的 content_by_lua_block。可使用 nginx/openresty -V 命令查看版本号。
[root@localhost ~]# cat openresty-test01/conf/nginx.conf
worker_processes 1; # 设置worker数量
error_log logs/error.log; # 指定错误日志文件路径
events {
worker_connections 1024; # 单个worker进程最大允许同时建立外部连接的数量
}
http {
server {
listen 8888; # 设置监听端口, 注意系统其它服务是否已占用该端口
location / {
# lua 代码块
content_by_lua_block {
ngx.say("this is lisea no.1 openresty app")
}
}
}
}
[root@localhost ~]# /usr/local/openresty/bin/openresty -p openresty-test01
无报错就表示运行成功
[root@localhost ~]# curl 127.0.0.1:8888
this is lisea no.1 openresty app
访问成功,OpenResty已经成功返回内容。
访问成功,OpenResty已经成功返回内容。