VUE+nginx代理到后端登錄問題

前端以Vue-element-admin為開發(fā)模板,后端為springboot淹朋,權限控制為shiro,前后端開發(fā)模型下為nginx串通前后端請求
1.vue.config.js中配置publicPaht設置開發(fā)及部署時的基本url地址
例如:

module.exports = {
  publicPath: '/my_app', // 開發(fā)及部署時的基本url
  // publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'static',
  lintOnSave: process.env.NODE_ENV === 'development',
  productionSourceMap: false,
  devServer: {
    port: port,
    // open: true,
    overlay: {
      warnings: false,
      errors: true
    }
    // ,
    // before: require('./mock/mock-server.js'),
    // proxy: {
    //   '/api': {
    //     target: 'http://localhost:8081/my_app', // 這里設置調用的域名和端口號邻耕,需要http,注意不是https!
    //     changeOrigin: true,
    //     pathRewrite: {
    //     //   '^/api': '/api' // 這邊如果為空的話嗦哆,那么發(fā)送到后端的請求是沒有/api這個前綴的
    //       '^/api': ''
    //     }
    //   }
    // }
  },

2.J2EE SpringBoot端配置,配置后使用postMan測試正確性


image.png

image.png

3.Nginx端配置闪彼,簡單可以直接修改nginx.conf(實際項目中請分目錄分文件)

server {
        listen       9000;    #可以新建也可以使用默認的80端口中修改甜孤,這里演示使用新建端口
        server_name  localhost;
        #keepalive_timeout 40; #連接超時時間,默認為75s畏腕,可以在http缴川,server,location塊描馅。

        #添加頭部信息把夸,proxy_set_header用來重定義發(fā)往后端服務器的請求頭。
        # 語法 proxy_set_header Field Value
        proxy_set_header Cookie $http_cookie;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
    #nginx :9000端口下代理到vue項目的9527端口下
        location /my_app/ {
            root   html;
            index  index.html index.htm;
            proxy_pass http://localhost:9527/my_app/;
        }
        
        location /api {
            root   html;
            index  index.html index.htm;
            proxy_pass http://localhost:8081/my_app/;

             # 如下 proxy_set_header 和  add_header 不加經過驗證也是OK的铭污。

                # 使用add_header指令來設置response header
                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,Token';
                    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,Token';
                    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,Token';
                }
                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,Token';
                    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,Token';
                }
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

說明:
1.訪問localhost:9000/my_app/地址恋日,nginx會代理到vue項目的localhost:9527/my_app/地址下。
2.然后9000端口下vue項目的請求地址/api會被代理到后臺Springboot項目下8081的my_app路徑請求下

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末嘹狞,一起剝皮案震驚了整個濱河市岂膳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刁绒,老刑警劉巖闷营,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烤黍,死亡現(xiàn)場離奇詭異知市,居然都是意外死亡,警方通過查閱死者的電腦和手機速蕊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門嫂丙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人规哲,你說我怎么就攤上這事跟啤。” “怎么了唉锌?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵隅肥,是天一觀的道長。 經常有香客問我袄简,道長腥放,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任绿语,我火速辦了婚禮秃症,結果婚禮上候址,老公的妹妹穿的比我還像新娘。我一直安慰自己种柑,他們只是感情好岗仑,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聚请,像睡著了一般荠雕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驶赏,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天舞虱,我揣著相機與錄音,去河邊找鬼母市。 笑死矾兜,一個胖子當著我的面吹牛,可吹牛的內容都是我干的患久。 我是一名探鬼主播椅寺,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒋失!你這毒婦竟也來了返帕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤篙挽,失蹤者是張志新(化名)和其女友劉穎荆萤,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體铣卡,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡链韭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了煮落。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敞峭。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蝉仇,靈堂內的尸體忽然破棺而出旋讹,到底是詐尸還是另有隱情,我是刑警寧澤轿衔,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布沉迹,位于F島的核電站,受9級特大地震影響害驹,放射性物質發(fā)生泄漏鞭呕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一裙秋、第九天 我趴在偏房一處隱蔽的房頂上張望琅拌。 院中可真熱鬧缨伊,春花似錦、人聲如沸进宝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽党晋。三九已至谭胚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間未玻,已是汗流浹背灾而。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扳剿,地道東北人旁趟。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像庇绽,于是被迫代替她去往敵國和親锡搜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344