nginx+lua配置,一个域名配置https,docker集群使用

这篇具有很好参考价值的文章主要介绍了nginx+lua配置,一个域名配置https,docker集群使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

没安装kua的先安装lua
没有resty.http模块的,许配置

nginx+lua配置,一个域名配置https,docker集群使用,一个域名配置https管理整个集群

lua做转发(方向代理)

1、ad_load.lua文件

ngx.header.content_type="application/json;charset=utf8"
local cjson = require("cjson")
local https = require 'resty.http'
local json = cjson:new()
--服务器一,域名拼接request_uri获得请求的路由和路由上的参数
-- local server_one_url = 'http://127.0.0.1:9059/index01';
-- local server_one_url = 'http://127.0.0.1:9059'..ngx.var.request_uri;
local server_one_url = ngx.var.url_ip..':'..ngx.var.url_port..ngx.var.request_uri;
local server_one_code = 'ONE_CODE';
-- ngx.say(server_one_url)
-- ngx.exit(ngx.OK)

--http get 请求方法
local function http_get(url)
    local http = https:new()
    local res, err = http:request_uri(url, {
        method = 'GET',
        headers = {
            ['Content-Type'] = 'application/json';
        }
    })
    if res.status == 200 then
        ngx.say(res.body)
    else
        -- ngx.say(res.status)
        ngx.say('服务器错误!')
    end
end

-- http post 请求方法
local function http_post(url, data)
    local http = https:new()
    local res, err = http:request_uri(url, {
        method = 'POST',
        body = data,
        headers = {
            ['Content-Type'] = 'application/json';
        }
    })
    if res.status == 200 then
        ngx.say(res.body)
    else
        ngx.say('服务器错误!')
    end
end

-- ngx.say(server_one_url)
-- ngx.say(ngx.var.request_method)
-- ngx.exit(ngx.OK)
if ngx.var.request_method == "GET" then
    --解析参数并做转发
    http_get(server_one_url)
elseif ngx.var.request_method == "POST" then
    --获取请求参数
    ngx.req.read_body()
    local data = ngx.req.get_body_data()
    --解析参数并做转发
    http_post(server_one_url, data)
end

2、nginx配置,配置两个ssh端口
nginx+lua配置,一个域名配置https,docker集群使用,nginx,lua,https

nginx+lua配置,一个域名配置https,docker集群使用,nginx,lua,https
完整nginx代码

server
{
    listen 9000;
    listen 9057 ssl http2;
	listen 9058 ssl http2;
    server_name ts.excel.****.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/ts.excel.****.com;
    
    #CERT-APPLY-CHECK--START
    # 用于SSL证书申请时的文件验证相关配置 -- 请勿删除
    include /www/server/panel/vhost/nginx/well-known/ts.excel.***.com.conf;
    #CERT-APPLY-CHECK--END
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/ts.excel.***.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/ts.excel.***.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-74.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/ts.excel.****.com.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    # 搭配lua做转发,docker容器
    location / {
      if ($server_port = 9057 ) {
        # 定义使用内网ip,定义请求端口
        set $url_ip 'http://127.0.0.1';
        set $url_port '9060';
        content_by_lua_file /lua-5.4.2/ad_load.lua;
      }
      if ($server_port = 9058 ) {
        # 定义使用内网ip,定义请求端口
        set $url_ip 'http://127.0.0.1';
        set $url_port '9059';
        content_by_lua_file /lua-5.4.2/ad_load.lua;
      }
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/ts.excel.****.com.log;
    error_log  /www/wwwlogs/ts.excel.****.com.error.log;
}

请求结果
nginx+lua配置,一个域名配置https,docker集群使用,nginx,lua,https
nginx+lua配置,一个域名配置https,docker集群使用,nginx,lua,https文章来源地址https://www.toymoban.com/news/detail-800388.html

到了这里,关于nginx+lua配置,一个域名配置https,docker集群使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在Docker 上使用 Nginx 配置https及wss

    预先创建挂载文件 使用docker启动nginx时候需要提前创建好宿主机的挂载文件,文件会在挂载成功之后自动从nginx的容器中复制默认内容 运行并且挂载容器 nginx.conf 文件 default.conf 文件

    2024年02月11日
    浏览(46)
  • nginx.conf配置一个域名转发到另一个域名

    要将一个域名转发到另一个域名,可以使用Nginx的反向代理功能,将请求从一个域名转发到另一个域名,同时保持原始的请求URI不变。 以下是一个简单的将www.example.com转发到backend.example.com的配置范例: 在这个配置中,我们创建了一个server块,监听80端口,指定了域名为www.e

    2024年02月11日
    浏览(42)
  • yum安装nginx、源码安装、nginx开机自启、配置多域名与重定向、反向代理、配置IPv6、获取证书与配置证书https

    可以使用yum直接安装nginx:yum -y install nginx,如果安装报错,可以换个yum源试试 源码安装提供更大的灵活性,但需要更多的手动管理,而Yum安装则更方便 yum源镜像站,阿里云的推荐:https://developer.aliyun.com/mirror/ 常用的镜像:epel和centos,根据提示命令直接安装即可 然后执行:

    2024年02月20日
    浏览(68)
  • 如何在无域名的情况下使用nginx部署https站点

    1. 生成SSL密钥 访问网站生成SSL密钥文件和CSR文件,csr.chinassl.net 域名就填写IP地址就好,然后点击 “生成CSR”文件,此时会生成2个文件,分别是CSR文件和KEY文件,分别点击 下载,分别保存为“your_ip_csr.txt”文件和“your_ip_key.txt”文件。 2. 生成SSL证书 访问网站生成SSL证书,

    2023年04月09日
    浏览(37)
  • Nginx配置 多个域名指向同一个服务器文件

    因为公司开发方面有响应的需求,需要多个域名指向同一个服务器下的文件(即访问的域名不同但访问的服务器下的文件是同一个) 已经过解析 并且指向同一个ip地址的多个域名 服务器nginx已配置好 如果有需求需要给域名配置ssl证书(https) 找到服务器的nginx.conf文件 一般情况

    2024年02月11日
    浏览(69)
  • CentOS使用nginx在无域名情况下用免费证书设置https

    centos系统环境搭建专栏🔗点击跳转 本文学习自大佬真心无著的博客如何在无域名的情况下使用nginx部署https站点,该博客的跳转链接为https://blog.csdn.net/yxjie2/article/details/126163577。以这篇博客的知识为基础,我将我的centos上的服务成功配置为使用https://124.221.87.224跳转进入,而且

    2024年01月21日
    浏览(48)
  • 服务器上一个域名对应多个前端项目的nginx转发配置

    场景: 当有两个前端项目A,B的时候,项目A(对应端口8000)和项目B(对应端口8001)分别部署在服务器的不同位置,通过服务器ip+端口都能正常访问单独的项目A和项目B;现在要求两个项目共用一个域名~~也就是说访问http://10.111.182.xxx:8000的时候默认访问项目A的资源,访问htt

    2024年02月05日
    浏览(51)
  • 记一个nginx server_name配置多个域名时的坑

            server_name 指令设置基于域名的虚拟主机,⼀个ip的服务器可以配置多个域名。下⾯这些server_name是有效的: server_name domain.com; server_name domain.com www.domain.com; server_name *.domain.com; server_name .domain.com; server_name domain.*; server_name \\\"\\\";         多个域名之间以空格分隔。n

    2024年02月15日
    浏览(48)
  • Nginx 域名SSL证书配置(网站 http 升级为 https) acme.sh 申请免费SSL永久证书(自动续期)

    小编这里用的是godaddy购买的域名 服务器是aws acme.sh GitHub地址  https://github.com/acmesh-official/acme.sh 配合nginx进行部署,后面会贴上nginx.conf 我这里是多个域名用同一个证书    首先你得在自己服务器上面进行部署nginx,如果不知道怎么操作的,可以参考我这一篇博客,执行到这一

    2024年01月24日
    浏览(56)
  • windows10下设置本地apache\nginx站点部署ssl证书,使本地配置的域名可以用https访问

    首先我们需要下载openssl来生成证书文件: 去官方网址下载https://slproweb.com/products/Win32OpenSSL.html; 下载好了,双击exe文件,然后就下一步,下一步安装完成; 安装之后配置环境变量,新建一个系统变量OPENSSL_HOME,值就是你安装目录下的bin,然后在系统变量path,增加%OPENSSL_HO

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包