前篇介紹了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<UP,BROADCAST,RUNNING,MULTICAST> 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<link> 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<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> 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已經成功返回頁面。html
[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 命令查看版本號。linux
[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
無報錯就表示運行成功nginx
[root@localhost ~]# curl 127.0.0.1:8888 this is lisea no.1 openresty app
訪問成功,OpenResty已經成功返回內容。git
訪問成功,OpenResty已經成功返回內容。github