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

访问国外网站快的dns免费自助建站自助建站平台

访问国外网站快的dns,免费自助建站自助建站平台,查询建设公司业绩网站,国家住房建设部网站一些服务不带认证,凡是可以访问到服务端口,都可以正常使用该服务,方便是方便,但是不够安全。 比如ollama默认安装后就是这样。现在据说网上扫一下端口11434,免apikey的ollama服务一大堆。。。 那我们怎样将本机安装的o…

一些服务不带认证,凡是可以访问到服务端口,都可以正常使用该服务,方便是方便,但是不够安全。
比如ollama默认安装后就是这样。现在据说网上扫一下端口11434,免apikey的ollama服务一大堆。。。
那我们怎样将本机安装的ollama能提供给其他用户使用,并且可以加apikey的限制呢?其实方案有很多,我说一个轻量级的解决方案,nginx代理转发,并且进行header中的Authorization信息的检查。
固定值的可以直接写在nginx.conf配置文件里,最简单;如果是使用json文件来存放apikey信息的话,nginx需要使用lua模块来读取json文件,进行解码,windows版的nginx默认不带lua模块,可以用openresty,它相当于集成了lua模块的nginx。json内容可以由其他应用来维护,不过内容有变化需要考虑,如果要求实时更新,那么最好在应用修改json文件内容时也同时通知nginx来更新;或者干脆由另外一个web服务来负责header中apikey的检查,nginx里要写lua代码去执行调用,根据返回结果来决定是否放行;还有一个就是我最终选择的方案-redis,apikey维护服务在apikey生效或者失效时更新redis的集合,nginx从redis里检查集合里是否包含请求头中的apikey。nginx.conf里的lua部分相关代码如下:

...
http {# 引入 Lua 模块lua_package_path "lualib/?.lua;;";lua_package_cpath "lualib/?.so;;";# 定义 Redis 连接参数upstream redis_backend {server 127.0.0.1:6379;  # Redis 服务器地址keepalive 10;           # 保持连接}...server {listen  443 ssl;...location /ollama/ {#if ($request_method = 'OPTIONS') {#	return 204;#	}access_by_lua_block {-- 获取请求头中的 Authorizationlocal auth_header = ngx.var.http_Authorizationif not auth_header thenngx.status = ngx.HTTP_UNAUTHORIZEDngx.say("Unauthorized: Missing Authorization header")return ngx.exit(ngx.HTTP_UNAUTHORIZED)end-- 连接 Redislocal redis = require "resty.redis"local red = redis:new()red:set_timeout(1000)  -- 设置超时时间为 1 秒local ok, err = red:connect("127.0.0.1", 6379)if not ok thenngx.status = ngx.HTTP_INTERNAL_SERVER_ERRORngx.say("Internal Server Error: Failed to connect to Redis")return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)end-- 查询 Redis 中是否存在该密钥local is_member, err = red:sismember("auth_keys", auth_header)if not is_member thenngx.status = ngx.HTTP_INTERNAL_SERVER_ERRORngx.say("Internal Server Error: Failed to query Redis")return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)end-- 关闭 Redis 连接local ok, err = red:set_keepalive(10000, 100)if not ok thenngx.log(ngx.ERR, "Failed to set keepalive: ", err)end-- 检查密钥是否有效if is_member == 0 thenngx.status = ngx.HTTP_UNAUTHORIZEDngx.say("Unauthorized: Invalid Authorization key")return ngx.exit(ngx.HTTP_UNAUTHORIZED)end}# 如果验证通过,代理到目标服务器#add_header 'Access-Control-Allow-Origin' '*';#add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';#add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';#add_header 'Access-Control-Max-Age' 1728000;#proxy_set_header origin http://127.0.0.1:11434;#proxy_set_header X-Real-IP $remote_addr;#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#proxy_set_header X-Forwarded-Proto $scheme;#proxy_set_header Authorization $http_authorization;#proxy_set_header Host localhost:11434;proxy_pass http://127.0.0.1:11434;}...}
}
...

主要是可以参考下lua里将header里认证信息与redis集合进行匹配,其他nginx转发设置头信息跟后端服务要求而定。

http://www.yayakq.cn/news/591235/

相关文章:

  • 广州网站建设星珀中国信用网企业查询系统
  • 南宁网站建设公司排名搜索排名优化
  • 培训机构网站模板dremrever怎么做网站
  • 广东网站建设制作wordpress主题加载慢
  • 模板网站建设公司哪个好上海seo推广平台
  • 怎么分享网站wordpress 页面模板 怎么用
  • 单页网站制作高校国际交流中心网站建设方案
  • 官方网站 建设情况汇报国际最著名建筑设计大奖
  • 优势网网站wordpress 耗时
  • 本地企业网站建设模板wordpress wp_footer
  • 网站空间如何搬家确定网站主题然后规划网站建设
  • 网站建设解析对公司网站建设的建议
  • 温州网站设计定制怎么黑掉织梦做的网站
  • 广州澄网站建设公司一份完整的活动策划书
  • 手机网站策划书常州武进建设局网站
  • 伍佰亿是什么网站昌大建设怎么样
  • 哪家公司的网站做得好网站在百度的标头不对
  • 新东方雅思培训价目表搜索引擎优化效果
  • 建筑网站首页设计wordpress搜索不到
  • 余姚物流做网站给网站网站做推广犯法
  • 营口网站建设公司八年级信息上册如何做网站
  • 企业外贸网站推广沈阳seo技术
  • 蓝色网站设计信息化项目建设背景
  • 做网站用的文本编辑器容桂网站建设找顺的
  • 网站开发工程师 北大青鸟中企动力属于国企吗
  • 怎样才能制作网站wordpress后台能修改模板文件
  • 娄底市住房和城乡建设局官方网站现在建设一个基础的网站多少钱
  • 手机网页字体大小怎么设置网站推广与seo的区别
  • 广州网站排名推广附近电脑平面设计培训班
  • 照片做视频ppt模板下载网站互联网做网站属于什么行业