Nginx 结合 autoindex 美化索引页面
前言 利用 nginx的 autoindex 模块,通过修改 nginx.conf 配置文件中的 add_after_body配置项来实现美化默认的索引页面。 原理:通过 js将原生界面的 dom元素提取出来,然后重新布局添加样式,最后添加到页面中并移出原来的 dom元素。 效果图 美化方案 Nginx-Fancyindex插件:但是需要自己编译nginx,比较麻烦 autoindex-add_after_body:可以非常方便的进行美化,只需要在nginx配置中添加一行 主要配置参考 这里将autoindex.html放在了nginx的根目录 123456789101112131415161718192021222324server { ...... charset utf-8; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; add_header cache-contro...
Nginx 配置 gRPC 协议
Nginx配置gRPC请求Nginx 在 1.13.10 中,新增了对gRPC的原生支持。有了对 gRPC 的支持,NGINX 就可以代理 gRPC TCP 连接,还可以终止、检查和跟踪 gRPC 的方法调用。 Nginx需要引入模块:--with-http_ssl_module --with-http_v2_module 为已经安装的Nginx添加新的编译模块: 进入解压的Nginx目录 执行命令:./configure --with-http_ssl_module --with-http_v2_module 执行命令:make && make install。执行make install时会将原有的文件替换掉,且会备份之前的文件 使用基础使用方式在客户端和服务器端之间插入 NGINX,NGINX 为服务器端的应用程序提供了一个稳定可靠的网关。 NGINX 使用 HTTP 服务器监听 gRPC 流量,并使用 grpc_pass 指令代理流量。 为 NGINX 创建以下代理配置,在端口 80 上侦听未加密的 gRPC 流量并将请求转发到端口 50051 上...
Nginx 给网站添加用户认证配置
Nginx给网站添加用户认证配置( Basic HTTP authentication) 说明:ngx_http_auth_basic_module模块实现让访问者只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。nginx的http auth模块以及Apache http auth都是很好的解决方案。 默认情况下nginx已经安装了ngx_http_auth_basic_module模块。 Nginx认证配置实例生成认证文件123# printf "test:$(openssl passwd -crypt 123456)\n" >> /home/htpasswd# cat /home/htpasswd test:xyJkVhXGAZ8tM **注意:**这里账号:test,密码:123456,记住认证文件路径 配置网站conf文件123456789101112131415server{ listen 80; server_name www.moer...
Kubernetes 安装 ingress-nginx-controller
参考:https://www.cnsre.cn/posts/210902330007 前言Service可能会有很多,如果每个资源都绑定一个 node port的话,主机则需要开放外围的端口进行服务调用,管理上会比较混乱。 比较优雅的方式是通过一个外部的负载均衡器,比如 nginx ,绑定固定的端口比如80,然后根据域名/服务名向后面的Service Ip转发,但是这里对问题在于:当有新服务加入的时候如何修改 Nginx 配置? 手动改或者 Rolling Update Nginx Pod 都是不现实的。 对于这个问题, k8s 给出的七层解决方案是:Ingress ingress-nginxingress nginx 官方网站 ingress nginx 仓库地址 ingress-nginx v1.0 最新版本 v1.0 适用于 Kubernetes 版本 v1.19+ (包括 v1.19 ) Kubernetes-v1.22+ 需要使用 ingress-nginx>=1.0,因为 networking.k8s.io/v1beta 已经移除 直接部署 ingre...
ngx 映射到 Lua 模块函数变量一览
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169ngx.arg[1] 脚本参数ngx.var['arg_a'] 取queryString的参数a #/nginx_var?a...
Nginx 日志配置详解
前言Nginx日志对于统计、系统服务排错很有用。Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。通过访问日志我们可以得到用户的IP地址、浏览器的信息,请求的处理时间等信息。错误日志记录了访问出错的信息,可以帮助我们定位错误的原因。本文将详细描述一下如何配置Nginx日志。 设置access_log访问日志主要记录客户端的请求。客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。当然具体要记录哪些信息,你可以通过log_format指令定义。 语法12access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; # 设置访问日志access_log off; # 关闭访问日志 path 指定日志的存放位置。 format 指定日志的格式。默认使用预定义的combined。 buffer 用来指定日志写入时的缓存大小。默认是64k。 gzip...
OpenResty 快速入门
OpenResty监听请求OpenResty的很多功能都依赖于其目录下的Lua库,需要在nginx.conf中指定依赖库的目录,并导入依赖: 1)添加对OpenResty的Lua模块的加载 修改/usr/local/openresty/nginx/conf/nginx.conf文件,在其中的http下面,添加下面代码: 1234#lua 模块lua_package_path "/usr/local/openresty/lualib/?.lua;;";#c模块 lua_package_cpath "/usr/local/openresty/lualib/?.so;;"; 2)监听/api/item路径 修改/usr/local/openresty/nginx/conf/nginx.conf文件,在nginx.conf的server下面,添加对/api/item这个路径的监听: 123456location /api/item { # 默认的响应类型 defaul...
Orange 网关容器化改造
orange网关传统集群部署模式1、在orange.conf的 plugins中加入node,表示开启node插件(容器集群节点管理插件) 12345678910111213141516171819202122232425262728 "plugins": [ "stat", "headers", "monitor", "redirect", "rewrite", "rate_limiting", "property_rate_limiting", "basic_auth", "key_auth", "jwt_auth", "hmac_auth", "signat...
OpenResty Lua API — cosocket 与请求转发
摘自:http://www.daileinote.com/computer/openresty/12 Openresty 提供了强大的 cosocket 功能,它源自 nginx 的 upstream 机制,但又超越了 upstream 机制,结合了 nginx 的事件机制和 Lua 协程特性,以同步非阻塞模式实现 socket 编程,可以高效的与后端服务器通信,而且还支持连接池功能。 ngx.socket.tcp123syntax: tcpsock = ngx.socket.tcp()context: rewrite_by_lua*, access_by_lua*, content_by_lua*, ngx.timer.*, \ ssl_certificate_by_lua*, ssl_session_fetch_by_lua* 创建一个 tcp 的 cosocket 对象,使用完后最好手动关闭或者通过 setkeepalive 存入连接池。如果没有关闭或者存入连接池,那么如下2中情况发生也会关闭。 1.当前请求的 Lua 句柄结束。2.被 Lua GC 垃圾回...
OpenResty Lua API — 共享内存区域
摘自:http://www.daileinote.com/computer/openresty/11 通过 lua_shared_dict 指令可以声明一个共享内存区域,可以在多个 worker 进程间共享,单位支持 k、m,然后配合 ngx.shared.DICT api函数来操作。nginx -s reload 后共享内存的数据还在。 这个共享内存功能非常有用,极大的便利了worker 进程间的通信和协作,而且还提供了类似 redis 的数据结构,可以当做一个简易的数据库,而且没有通信开销。 共享内存在 Openresty 里用途很广,基于它可以实现流量统计、缓存、进程锁等高级功能。 12345678910111213141516171819202122232425http { lua_shared_dict dogs 10m; server { location /set { content_by_lua_block { local dogs = ...
