nginx代理springboot前后端分离服务--接入cas客户端时内外网配置

nginx代理springboot前后端分离服务--接入cas客户端时内外网配置

我的前后端服务及cas服务端都是nginx代理的,假如我的地址如下:

c 复制代码
外网:10.213.163.219
内网:192.168.10.150

nginx配置

c 复制代码
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        #nginx监听地址和端口(内网地址)
        listen       8091;
        server_name  192.168.10.150;

        #前端
        location ^~ /portal {
            autoindex on;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
            proxy_cookie_path /portal/ /cas ;
            alias /usr/share/nginx/html;
            index  index.html;
            try_files $uri $uri/ /index.html last;
        }

        #cas服务端
        location ^~  /cas {
            proxy_pass http://192.168.10.150:8081/cas/;
            add_header Access-Control-Allow-Origin *;
            proxy_cookie_path /cas/ /;  #解决nginx转发丢失cookie的问题

            # 支持 OPTIONS 请求,并设置预检请求结果的缓存时间
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }
            
         }

         #后端
         location ^~  /my_server/ {
            proxy_pass http://192.168.10.150:8082/my_server/;
            add_header Access-Control-Allow-Origin *;
            proxy_cookie_path /my_server/ /;  #解决nginx转发丢失cookie的问题

            # 支持 OPTIONS 请求,并设置预检请求结果的缓存时间
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }
            
         }
    }

    #include /etc/nginx/conf.d/*.conf;
}

前端配置

因为前端是nginx代理的,所以前端配置的后端地址,cas服务端地址都应是外网地址

示例:

json 复制代码
 window.GlobalConfig = {
  TOB_BASE_URL: `http://10.213.163.219:8091/my_server`,
  TOB_CAS_LOGIN_URL: `http://10.213.163.219:8091/cas/login?service=${window.location}`,
  TOB_CAS_COOKIE_NAME: 'TGC',
  TOB_CAS_LOGINOUT_URL: 'http://10.213.163.219:8091/cas/logout?service=http://10.213.163.219:8091/my_server/api/login/logout',
  TOB_IS_OPEN_CAS: true
}

后端配置

因为前端访问后端程序时需要进行登录验证,因为是在浏览器中访问的地址,所以跳转登录地址为外网地址才能进行访问,验证通过之后,服务端会获取票据ticket,会拿票据ticket去cas服务端验证,内网之间程序访问使用外网会不通,所以去cas服务端验证的地址应是内网的。

c 复制代码
cas:
  #cas服务端地址(内网)-nginx代理
  server-url-prefix: "http://192.168.10.150:8082/cas"
  #cas服务端地址登录地址(外网)-nginx代理
  server-login-url: "http://10.213.163.219:8091/cas/login"
  #后端服务地址(外网)-nginx代理
  client-host-url: "http://10.213.163.219:8091"
  validation-type: cas3
相关推荐
上官浩仁12 分钟前
springboot maven 多环境配置入门与实战
java·spring boot·maven
云飞云共享云桌面14 分钟前
1台电脑10个画图设计用怎么实现
linux·运维·服务器·网络·数据库·自动化·电脑
三坛海会大神55517 分钟前
LVS与Keepalived详解(一)负载均衡集群介绍
运维·负载均衡·lvs
宇钶宇夕24 分钟前
西门子 S7-200 SMART PLC 编程:转换 / 定时器 / 计数器指令详解 + 实战案例(指令讲解篇)
运维·算法·自动化
艾莉丝努力练剑28 分钟前
【Linux】初始Linux:从计算机历史发展、操作系统历史脉络的角度详谈Linux相关的话题,附Linux安装和用户创建(环境准备)详解
linux·运维·服务器·经验分享
kaixin_啊啊32 分钟前
openEuler系统远程管理方案:cpolar实现安全高效运维
运维·安全
努力学习的小廉38 分钟前
深入了解linux系统—— 线程池
linux·运维·服务器
不是编程家1 小时前
Linux第十五讲:Socket编程UDP
linux·运维·udp
麦兜*1 小时前
Docker 部署 MongoDB:单节点与副本集的最佳实践
java·spring boot·mongodb·spring cloud·docker·容器·maven
格林威1 小时前
Linux使用-MySQL的使用
linux·运维·人工智能·数码相机·mysql·计算机视觉·视觉检测