nginx-cas攔截

1、 nginx介紹

??Nginx在前后端分離框架設(shè)計(jì)中,既可以作為前端的HTTP訪問器,也可以通過簡單配置實(shí)現(xiàn)負(fù)載均衡,還可以通過反向代理配置解決前后端分離的JavaScript跨域問題。
??解決方案:Nginx服務(wù)器中,監(jiān)聽同一個(gè)域名和端口,不同路徑轉(zhuǎn)發(fā)到客戶端和服務(wù)器,把不同端口和域名的限制通過反向代理,來解決跨域問題。

2、nginx安裝和配置

Ubuntu:apt-get install nginx -y
Centos:yum -y install nginx

2.1 編輯nginx.conf文件

??進(jìn)入/etc/nginx目錄,編輯nginx.conf文件;將http 域內(nèi)的整個(gè)server{}內(nèi)容清除,找到include /etc/nginx/conf.d/*.conf;這行,如果沒有,添加到http {} 的關(guān)閉括號前一行,刪除或注釋掉其他的 include *.conf行。

2.2 創(chuàng)建workload_server.conf

??在nginx.conf中已經(jīng)添加:include /etc/nginx/conf.d/*.conf;,所以先去/etc/nginx/conf.d目錄,清空所有的內(nèi)容,然后在該目錄下創(chuàng)建workload_server.conf文件;

2.3 部署反向代理

1)配置web主入口;
2)配置cas;

server {
        listen 8190 default_server;
        listen [::]:8190 default_server;

        server_name _;

        location / {
               root /var/www/html/list;

                # root /usr/share/nginx/html;

               index index.html index.htm index.nginx-debian.html;

        
    if ($request_method = 'OPTIONS') {
             add_header 'Access-Control-Allow-Origin' '*';
             add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
             add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
             add_header 'Access-Control-Max-Age' 1728000;
             add_header 'Content-Type' 'text/plain; charset=utf-8';
             add_header 'Content-Length' 0;
             return 204;
     }
       if ($request_method = 'POST') {
                 add_header 'Access-Control-Allow-Origin' '*';
             add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
             add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
             add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
     }
     if ($request_method = 'GET') {
             add_header 'Access-Control-Allow-Origin' '*';
         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
             add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
             add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
     }
    
 #               try_files $uri $uri/ =404;
 }
          location /demo {
    #配置demo的IP和端口
            proxy_pass   http://ip:7080/demo;
        add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
            add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
            proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Cookie $http_cookie;
            proxy_redirect default;
            #root   /home/xxx/webapps/demo;
            index  index.html index.htm;
        }
          location /demosso{
    #配置demosso的IP和端口
            proxy_pass   http://ip:7080/demosso;
        proxy_redirect default;
            root   /home/xxx/webapps/demosso;
            proxy_read_timeout 600s;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header Host $host:$server_port;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            index  index.html index.htm;
        }
}

注意
??demo和demosso中配置時(shí)需要輸入ip和端口號,而不是使用upstream中的參數(shù)代替;否則無法跳轉(zhuǎn)到8190;

2.4 nginx操作

2.4.1 啟動nginx

nginx

2.4.2 停止nginx

nginx -s stop

2.4.3 查看nginx進(jìn)程

ps -ef | grep nginx

2.4.4 修改nginx.conf后重啟nginx

nginx -s reload
/usr/local/nginx/sbin/nginx -s reload

3、修改demo的web.xml文件

su demo用戶
注意:
??demo和demosso中配置時(shí)需要輸入ip和端口號,而不是使用upstream中的參數(shù)代替;否則無法跳轉(zhuǎn)到8190;

3.1 進(jìn)入到web.xml所在目錄

3.2 配置同nginx一樣的代理端口

3.3 重啟demo

(1)進(jìn)入到/home/demo/bin目錄下(通過su demo用戶)
(2)關(guān)閉服務(wù)./stop-demo.sh
(3)重啟服務(wù)./start-demo.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容