文档章节

nginx同时支持反向代理和鉴权配置一例

blanch-kyle
 blanch-kyle
发布于 2015/11/26 16:28
字数 660
阅读 218
收藏 0
配置要求:
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

© 著作权归作者所有

共有 人打赏支持
blanch-kyle
粉丝 0
博文 2
码字总数 865
作品 0
杭州
深入玩转K8S之如何访问业务应用(Traefik-ingress篇)

上篇懒得写了索性转载了一篇nginx-ingress的,本篇我们来看神器Traefik,我个人是比较看好和偏向与Traefik的,它轻便易用而且还有节目。 先介绍下什么是Traefik,Traefik是一个为了让部署微服...

Devin
08/02
0
0
nginx 学习笔记(四)nginx + lua 使用 ssl 验证 浏览器证书

场景:接着笔记(三)的鉴权,需要先调用第三方服务进行鉴权,第三方对应的浏览器需要导入证书,否则就会报400错误,只有当鉴权成功后才能往下进行反向代理,此处就不强调如何生成证书,如何...

zhu_kai1
08/29
0
0
java 服务器获取请求的IP方法之总结

项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。 我找到那块的代码,跟了一遍流程发现逻辑没有啥问题,但是...

IT_小翼
2015/03/13
0
0
GitLab的安装及使用(CentOS 7)

一、前言 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与Github类似的功能,能够浏览源代码,管理...

wzlinux
2017/10/22
0
0
获取代理 原客户端ip

Java获取IP地址:request.getRemoteAddr()警惕 项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。 我找到那块的...

李永china
2016/05/04
44
2

没有更多内容

加载失败,请刷新页面

加载更多

LSM-Tree 大数据索引技术

一、LSM-Tree概述 核心思想就是放弃部分读能力,换取写入能力的最大化。LSM-Tree ,这个概念就是结构化合并树(Log-Structured Merge Tree)的意思,它的核心思路其实非常简单,就是假定内存...

PeakFang-BOK
29分钟前
1
0
vue.js响应式原理解析与实现

从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染。之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新...

peakedness丶
35分钟前
1
0
Weblogic补丁升级操作步骤

linux平台: weblogic1036 1:停止weblogic服务 2:打FMJJ补丁 a:获取weblogic_home目录并执行命令:export weblogic_home="/weblogic/wls1036_x64",(此目录一般为目录“user_projects”上...

fang_faye
48分钟前
1
0
04-《Apache Tomcat 9 User Guide》之部署项目

1.Introduction Deployment is the term used for the process of installing a web application (either a 3rd party WAR or your own custom web application) into the Tomcat server. 部......

飞鱼说编程
49分钟前
1
0
一位十年的老码农他眼中的区块链

大家可能已经听说过比特币、莱特币、以太币等等,以及它们作为一种新货币在市场上的潜力。 有趣的是,很多投资比特币的人也提到了区块链之类的东西。 显然,这项技术是比特币等其他东西的"基...

小刀爱编程
56分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部