当前位置: 首页 > news >正文

做演示的网站sem代运营托管公司

做演示的网站,sem代运营托管公司,网站设计客户案例,成都小程序开发公司找哪家文章目录 一、需求分析二、准备1、软件安装2、redis-lua封装优化 三、实现1、nginx.conf2、dynamic.lua注意 3、准备两个应用4、访问nginx 四、参数直接传要代理的地址端口 一、需求分析 根据用户访问url的参数,将请求转发到对应指定IP的服务器上。 二、准备 1、…

文章目录

  • 一、需求分析
  • 二、准备
    • 1、软件安装
    • 2、redis-lua封装优化
  • 三、实现
    • 1、nginx.conf
    • 2、dynamic.lua
      • 注意
    • 3、准备两个应用
    • 4、访问nginx
  • 四、参数直接传要代理的地址+端口

一、需求分析

根据用户访问url的参数,将请求转发到对应指定IP的服务器上。

二、准备

1、软件安装

安装openresty+redis,略

2、redis-lua封装优化

在关于web+lua+openresty开发中,项目中会大量操作redis,

重复创建连接–>数据操作–>关闭连接(或放到连接池)这个完整的链路调用完毕,
甚至还要考虑不同的 return 情况做不同处理,就很快发现代码中有大量的重复

推荐一个二次封装的类库
OpenResty使用Lua大全(四)OpenResty中使用Redis

三、实现

1、nginx.conf

worker_processes 4;events {worker_connections  1024;
}http {include       mime.types;default_type text/html;sendfile        on;keepalive_timeout  65;# 指定lua文件地址lua_package_path '/usr/local/openresty/nginx/conf/?.lua;;';server {listen       80;server_name  192.168.56.10;charset utf-8;location / {# 目标代理地址(动态生成)set $target '';# 执行luaaccess_by_lua_block {local proxy = require("dynamic")ngx.var.target = proxy.dynamicProxy()}proxy_pass http://$target;resolver 114.114.114.114;}}
}

2、dynamic.lua

local redis = require "resty.redis_iresty"
local _M = {_VERSION = '0.01'}local opts = {ip = "192.168.56.10",port = "6379",-- password = "root",db_index = 0
}local red = redis:new(opts)-- 封装函数,防止每次redis都要new
function _M.dynamicProxy()-- 获取url参数,通过client来获取redis的ip+端口local clientKey = ngx.req.get_uri_args()["client"]if not clientKey thenngx.exit(403)ngx.say("no param as client: ", err)returnend-- 根据client,获取到ip+端口local clientIP, err = red:get(clientKey)if not clientIP thenngx.exit(404)ngx.say("failed to connect redis: ", err)returnelseif clientIP == ngx.null thenngx.exit(404)ngx.say("failed to connect redis: ", err)returnend-- 将获取到的value赋值给target-- ngx.var.target = clientIPreturn clientIPendreturn _M

注意

这里防止new多次,能否提高性能表示存疑。

3、准备两个应用

192.168.56.1:8081、192.168.56.1:8082,分别在redis中设置:
client1:

4、访问nginx

在这里插入图片描述

在这里插入图片描述
至此,实现了根据请求参数进行动态路由转发。

四、参数直接传要代理的地址+端口

worker_processes 4;events {worker_connections  1024;
}http {include       mime.types;default_type text/html;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  192.168.56.10;charset utf-8;location / {# 目标代理地址(动态生成)set $target '';# 执行luaaccess_by_lua_block {local clientKey = ngx.req.get_uri_args()["client"]if not clientKey thenngx.exit(403)ngx.say("no param as client: ", err)returnendngx.var.target = clientKey}proxy_pass http://$target;resolver 114.114.114.114;}}
}
http://www.khdw.cn/news/46293.html

相关文章:

  • php做网站后台b站免费建网站
  • 网站建设的主要工作青岛网站制作seo
  • 网站上传为什么大小限制网络推广费用大概价格
  • 杭州网站维护外包百度收录提交网站后多久收录
  • 蚌埠市做家教网站北京疫情消息1小时前
  • 展馆展示设计公司招聘信息广州seo关键词优化是什么
  • 富阳公司做网站千锋培训学费多少钱
  • 顺德门户网站建设公司百度竞价排名点击软件
  • 利用淘宝做网站卖货到国外郑州百度快照优化
  • 武汉汉阳建设局官方网站怎么做盲盒
  • wordpress 描述插件seol英文啥意思
  • 西安响应式网站创意营销
  • 宜州网站建设怀化网站seo
  • 在安阳想建个网站怎么做合肥网站推广优化
  • 深圳外贸英文网站设计联系电话广告类的网站
  • 兰州做网站优化微信最好用的营销软件
  • 最好看的网站设计友情链接方面pr的选择应该优先选择的链接为
  • 做网站钱上海专业seo公司
  • 服装网站怎么做长春seo排名
  • 全国31省疫情排名优化大师网页版
  • 无锡网站建设 网站制作宁夏百度公司
  • 温州市瓯海建设局网站如何建立自己的博客网站
  • 新丝路网站建设名词解释seo
  • 1688域名网站天津优化加盟
  • 网站首页轮播图片网页设计网站建设
  • 邮箱qq登录网页登陆seo页面优化的方法
  • 预约网站模板百度seo是什么
  • 用asp.net做后台网站不要手贱搜这15个关键词
  • 计算机应用技术网站建设百度搜索网页版入口
  • 深圳 网站 设计电销系统软件排名