nginx同时支持反向代理和鉴权配置一例
nginx同时支持反向代理和鉴权配置一例
blanch-kyle 发表于2年前
nginx同时支持反向代理和鉴权配置一例
  • 发表于 2年前
  • 阅读 88
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

摘要: 支持反向代理和鉴权的nginx配置示例
配置要求:
1.支持反向代理,由nginx处理静态资源,后端的tomcat处理动态页面。
2.所有的请求必须先经过鉴权(包括静态资源)。
3.如果鉴权不通过则需要跳转到指定页面。


处理过程:
反向代理nginx自带可以实现,鉴权操作使用插件ngx_http_auth_request_module实现。


配置内容及说明如下(大体流程没问题,部分配置后期可能需要处理):

#工作进程,根据硬件调整,大于等于cpu核数

worker_processes  1;

 

events {

         #使用epollI/O 模型

    use epoll;

 

#工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行,每个进程允许的最多连接数, 理论上每台nginx服务器的最大连接数为worker_processes*worker_connections

worker_connections  1024;

 

}

 

#设定http服务器,利用它的反向代理功能提供负载均衡支持

http {

         #设定mime类型,类型由mime.type文件定义

include       mime.types;

#设置文件使用的默认的MIME-type

default_type  application/octet-stream;

 

#sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,
对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime

sendfile        on;

#keepalive超时时间。

keepalive_timeout  65;

 

#负载均衡, weight(权重)

    upstream authserver {

             server 192.168.30.33:11238 weight=10;

             server 192.168.30.34:11238 weight=5;

    }

        

     upstream jspserver {

               server 192.168.30.33:11238 weight=10;

             server 192.168.30.34:11238 weight=5;

    }

 

         #配置虚拟机

server {

         #配置监听端口

listen       3333;

                  

                   #当出现指定的错误时,指定需要跳转的页面。

error_page  403         =       /403.html;

 

 

#配置访问域名:登录页面都有访问权限

                  location = /login.html {

                            #根目录

                 root /wwwroot/;

                            #允许所有人访问

                 allow all;

                            break;

        }

#配置访问域名:没有权限的人要重定向到登录页面

                  location = /403.html {

             root /wwwroot/;

                            #域名重定向到登录页面

            rewrite ^/(.*)$ http://$host:3333/login.html permanent;

            allow all;

             }

                   #配置访问域名:访问静态资源

                  location /static {

                            #需要到auth去认证

                       auth_request /auth;

                       root /wwwroot/;

                  }

                   #配置访问域名:访问动态页面

                  location / {

                            #需要到auth去认证

            auth_request /auth;

                            #设置头部的一些信息

                 proxy_set_header Host $http_host;

                 proxy_set_header X-Real-IP $remote_addr;

                 proxy_set_header X-Scheme $scheme;

                            #请求负载均衡

                 proxy_pass http://jspserver;

        }

                   #配置访问域名:认证处理

                  location = /auth {

                       proxy_pass http://authserver;

                       proxy_pass_request_body off;

                       proxy_set_header Content-Length "";

                       proxy_set_header X-Original-URI $request_uri;

                  }


    }
}


附:

nginx安装:
./configure --prefix=/usr/local/nginx  --add-module=/root/ngx_http_auth_request_module-662785733552/
make
make install
共有 人打赏支持
粉丝 0
博文 2
码字总数 865
×
blanch-kyle
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: