docker 安装 openresty

Posted 杰哥的技术杂货铺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 安装 openresty相关的知识,希望对你有一定的参考价值。


  • openresty-github:https://github.com/openresty/openresty
  • openresty中文邮件帮助:https://groups.google.com/group/openresty
  • openresty-docker:https://github.com/openresty/docker-openresty
  • openresty-dockerhub:https://hub.docker.com/r/openresty/openresty/dockerfile

了解过web服务器的朋友肯定对nginx不陌生,nginx作为目前占有率第一的web服务器,本身作为静态web服务器、反向代理服务和四层、七层负载均衡器都有着非常优秀的表现。但是对于web服务器而言,nginx的很多功能都偏向于静态web应用,也就是说它的动态处理能力是有一定的缺失的。举个最简单的例子,nginx无法在配置中直接进行一个条件以上的逻辑判断,这对于一些架构设计来说有着较大的不便。OpenResty的诞生就是为了解决这个问题。

1、下载openresty镜像

docker pull openresty/openresty:1.19.3.1-alpine

2、新建openresty挂载目录:

mkdir -p /opt/docker/openresty/conf.d,html,logs,cert

3、编写openresty容器启动脚本

# vim /opt/docker/openresty/run.sh 

#!/bin/bash

docker run -itd --restart=unless-stopped \\
--network=host \\
--name openresty \\
-v /opt/docker/openresty/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf \\
-v /opt/docker/openresty/conf.d:/etc/nginx/conf.d \\
-v /opt/docker/openresty/logs:/usr/local/openresty/nginx/logs \\
-v /opt/docker/openresty/html:/usr/local/openresty/nginx/html \\
-v /opt/docker/openresty/cert:/usr/local/openresty/nginx/cert \\
-v /opt/docker/openresty/run:/var/run/openresty \\
-v /opt/docker/openresty/nginx/lua:/usr/local/openresty/nginx/lua \\
openresty/openresty:1.19.3.1-alpine
docker logs -f openresty

4、编写建openresty-nginx主配置文件

# vim /opt/docker/openresty/nginx.conf 

worker_processes 4;
#user nginx;
events
worker_connections 409600;

http
include mime.types;
default_type application/octet-stream;
server_tokens off;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
keepalive_timeout 65;
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 /usr/local/openresty/nginx/logs/access.log main;
error_log /usr/local/openresty/nginx/logs/error.log error;
include /etc/nginx/conf.d/*.conf;

5、编写openresty虚拟主机配置文件

  • https域名conf文件配置
# vim openresty-443.conf

server
listen 80;
server_name 127.0.0.1;
rewrite ^ https://$http_host$request_uri? permanent;
server_tokens off;

server
listen 443 ssl;
server_name 127.0.0.1;
ssl_certificate /usr/local/openresty/nginx/cert/xxx.com.pem;
ssl_certificate_key /usr/local/openresty/nginx/cert/xxx.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
charset utf-8;
location /
root /usr/local/openresty/nginx/html;
index index.php index.html index.htm;

access_log /usr/local/openresty/nginx/logs/access.log main;
  • http域名conf文件配置
# vim openresty.template.conf 

server
listen 80;
server_name 127.0.0.1;
charset utf-8;
location /
root /usr/local/openresty/nginx/html;
index index.php index.html index.htm;

access_log /usr/local/openresty/nginx/logs/access.log main;
  • 反向代理配置
server 
listen 80;
server_name 127.0.0.1;

location /
proxy_redirect off;
proxy_pass http://0.0.0.0/;

access_log /usr/local/openresty/nginx/logs/access.log main;


以上是关于docker 安装 openresty的主要内容,如果未能解决你的问题,请参考以下文章

docker 安装 openresty

使用 OpenResty Docker 镜像快速搭建 Web 服务器

使用lua graphql 模块让openresty 支持graphql api

Docker下的OpenResty三部曲之终篇:OpenResty加Tomcat的服务

Kong环境搭建(一)

Redis进阶学习08--多级缓存