nginx服務(wù)器搭建配置解決多客戶端之間調(diào)接口跨域問題

多個(gè)tomcat服務(wù)器之間的項(xiàng)目如果互調(diào)接口的情況下,ajax請(qǐng)求時(shí)是會(huì)有跨域問題的舔琅,
如 我用一個(gè)8082端口的tomcat下啟動(dòng)一個(gè)MyBlog2的項(xiàng)目正常請(qǐng)求的接口如下:


深度截圖_選擇區(qū)域_20190923225425.png

當(dāng)在8081端口的tomcat上的一個(gè)項(xiàng)目中ajax調(diào)用這個(gè)接口時(shí)會(huì)存在跨域問題爵赵,如圖報(bào)錯(cuò)信息:


深度截圖_選擇區(qū)域_20190923225623.png

跨域問題如何解決呢 利用Nginx服務(wù)器的反向代理轉(zhuǎn)發(fā)功能吝秕,可以通過nginx服務(wù)器轉(zhuǎn)發(fā)到其他tomcat解決跨域問題。

下載Nginx

官網(wǎng)地址:http://nginx.org/en/download.html

可以下載windows版或linux版空幻,操作方式都差不多烁峭,如果是windows版,下載下來(lái)解壓之后cmd打開文件夾直接運(yùn)行start nginx就好了秕铛。我用的deepin系統(tǒng)约郁,這里以debian系linux版為例:
把在官網(wǎng)下載的壓縮包解壓到一個(gè)文件夾
比如我把壓縮包放在了~/myspace/profile這個(gè)文件夾

//解壓
tar -zxvf nginx-1.16.1.tar.gz
cd  nginx-1.16.1
//執(zhí)行初始化命令
sudo ./configure
sudo make
sudo make install

執(zhí)行完上面的命令后,在/usr/local下出現(xiàn)了nginx但两,默認(rèn)安裝在這里鬓梅。

cd /usr/local/nginx/sbin
//把nginx命令放入系統(tǒng)命令
cp nginx /usr/bin/
//啟動(dòng)nginx
sudo nginx

這樣nginx就啟動(dòng)了 默認(rèn)占用80端口,配置文件在conf下的nginx.conf
在瀏覽器訪問localhost能看到啟動(dòng)成功的歡迎頁(yè)面如圖


深度截圖_選擇區(qū)域_20190923231914.png

啟動(dòng)谨湘,關(guān)閉绽快,重啟芥丧,命令:

sudo nginx 啟動(dòng)

sudo nginx -s stop 關(guān)閉

sudo nginx -s reload 重啟

配置nginx.conf

此文件中server可以寫多個(gè),可以listen不同的端口坊罢,每個(gè)server里可以寫多個(gè)location,可以轉(zhuǎn)發(fā)不同的tomcat地址

worker_processes  1;
events {
    worker_connections  1024;
}


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

    sendfile        on;
    keepalive_timeout  65;
    upstream localTomcat {
        server localhost:8081;
    }
    upstream localTomcat1 {
        server localhost:8082;
    }

server {
        listen       8083;
        
        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://localTomcat;
            #允許cros跨域訪問
            add_header 'Access-Control-Allow-Origin' '*';

            
        }

    location /MyBlog2 {
                #root   html;
                #index  index.html index.htm;
               proxy_pass http://localTomcat1;
                #允許cros跨域訪問
                add_header 'Access-Control-Allow-Origin' '*';
           }
    



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

        
    }

}

如上配置中server監(jiān)聽8083端口续担,location /MyBlog2 代表訪問8083端口且以MyBlog2開頭的請(qǐng)求路徑 都會(huì)走http://localTomcat1; localTomcat1在upstream里有定義指向localhost:8082 也就是說(shuō)請(qǐng)求:http://localhost:8083/MyBlog2 等于 http://localhost:8082/MyBlog2
所以在8081的tomcat項(xiàng)目里用ajax調(diào)用8083下的MyBlog2開頭的路徑是會(huì)被轉(zhuǎn)發(fā)到8082端口上的 配置下面一句便可跨域訪問

#允許cros跨域訪問
add_header 'Access-Control-Allow-Origin' '*';

ajax前端代碼

$.ajax({
        url : "http://localhost:8083/MyBlog2/test.do",
        contentType: "application/json",
        type : 'post',
        dataType:"json",
        processData:false,
        contentType:false,
        async:true,
        success : function(data){
            
            alert(data);
        },
        error : function(data){
            alert(data);
        }
       
    });

修改完配置文件之后reload一下使配置生效

sudo nginx -s reload

再次刷新頁(yè)面可以看到在8081下調(diào)用8082項(xiàng)目的接口已可正常返回?cái)?shù)據(jù) 如圖


深度截圖_選擇區(qū)域_20190923233727.png

關(guān)于nginx location配置下面的鏈接講的比較細(xì),可以參考一下
https://www.cnblogs.com/cheyunhua/p/7927674.html

nginx作為一個(gè)服務(wù)器能做的還有很多 在反向代理 負(fù)載均衡 前后端分離 方面比較有優(yōu)勢(shì) 有待后續(xù)繼續(xù)學(xué)習(xí)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末活孩,一起剝皮案震驚了整個(gè)濱河市物遇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诱鞠,老刑警劉巖挎挖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異航夺,居然都是意外死亡蕉朵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門阳掐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)始衅,“玉大人,你說(shuō)我怎么就攤上這事缭保⊙凑ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵艺骂,是天一觀的道長(zhǎng)诸老。 經(jīng)常有香客問我,道長(zhǎng)钳恕,這世上最難降的妖魔是什么别伏? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮忧额,結(jié)果婚禮上厘肮,老公的妹妹穿的比我還像新娘。我一直安慰自己睦番,他們只是感情好类茂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著托嚣,像睡著了一般巩检。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上示启,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天兢哭,我揣著相機(jī)與錄音,去河邊找鬼丑搔。 笑死厦瓢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的啤月。 我是一名探鬼主播煮仇,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谎仲!你這毒婦竟也來(lái)了浙垫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤郑诺,失蹤者是張志新(化名)和其女友劉穎夹姥,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辙诞,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辙售,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飞涂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旦部。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖较店,靈堂內(nèi)的尸體忽然破棺而出士八,到底是詐尸還是另有隱情,我是刑警寧澤梁呈,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布婚度,位于F島的核電站,受9級(jí)特大地震影響官卡,放射性物質(zhì)發(fā)生泄漏蝗茁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一味抖、第九天 我趴在偏房一處隱蔽的房頂上張望评甜。 院中可真熱鬧,春花似錦仔涩、人聲如沸忍坷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)佩研。三九已至,卻和暖如春霞揉,著一層夾襖步出監(jiān)牢的瞬間旬薯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工适秩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绊序,地道東北人硕舆。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像骤公,于是被迫代替她去往敵國(guó)和親抚官。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容