nginx配置备忘

  • 将非根的url转发到另外服务器的根:比如访问serverA/abc/index.html,转发到serverB/index.html。参考链接:https://www.cnblogs.com/stcweb/articles/16040025.html。里面还提供了一个通过rewrite实现的方法。

 

location abc {
    proxy_pass serverB/;
}
#serverB后面如果不带/,则会转发到serverB/abc/index.html

 

  • 根据我的理解,rewrite更多的是重定向,与proxy_pass代理不一样。具体可以参考:https://blog.csdn.net/qq1356059950/article/details/125014248
  • proxy_redirect:当上游服务器返回的响应是重定向或刷新(如301或302)的请求时,proxy_redirect可以重设http头部的location和refresh字段。可以参考:https://www.qyyshop.com/info/924054.html
  • 转发ws(websocket)协议:在server块中加入下面的内容。具体可以参考:https://dandelioncloud.cn/article/details/1607011573635956738

 

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

 

  • 在nginx中加入http基本身份鉴权:在server块中添加下面指令,密码需要通过htpasswd来生成:htpasswd -c /etc/nginx/conf.d/passwd.db usrname
    auth_basic   "user";
    auth_basic_user_file /etc/nginx/conf.d/passwd;
    #htpasswd生成的密码文件保存在/etc/nginx/conf.d/passwd
  • 当多个上游服务器需要反向代理的路径有重名(比如都有\static\路径)时可以通过http_referer来识别,并做跳转。具体可参看:https://blog.csdn.net/weixin_45066823/article/details/126621727
  • nginx没有else,不支持if嵌套,没有多条件逻辑运算。如需要判断同时满足A条件和B条件,则执行某动作,可以使用变量方式间接使用,可以参见https://blog.csdn.net/java814483194/article/details/126552200
    set $flag "";
    if (A) {
        set $flag "${flag}1";
    }
    if (B) {
        set $flag "${flag}1";
    }
    if ($flag = "11"){
        do something;
    }
posted @ 2023-07-29 16:01  badwood  阅读(13)  评论(0编辑  收藏  举报
Badwood's Blog