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
相关推荐
天才奇男子1 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
小李独爱秋1 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
qq_297574671 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
Dxy12393102162 小时前
413 Request Entity Too Large 原因与解决方案
nginx
Dying.Light2 小时前
Linux部署问题
linux·运维·服务器
CYpdpjRnUE3 小时前
光储一体机仿真模型搭建之旅
nginx
S19013 小时前
Linux的常用指令
linux·运维·服务器
萤丰信息3 小时前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
小义_3 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
运维小欣3 小时前
Agentic AI 与 Agentic Ops 驱动,智能运维迈向新高度
运维·人工智能