亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

Webpack + Tomcat + Nginx/Apache實現前后端開發分離

2024-04-27 15:05:29
字體:
來源:轉載
供稿:網友

目標: 本文依賴自己的個人經驗,簡要介紹一下ReactJS+Tomcat的開發方式,經過團隊試用,覺得比較好。主要得益于ReactJS的開發方式和webpack工具的使用,結合強大的代理,實現了一個較為方便的小團隊開發環境。由于我是零基礎開始實驗這個方案,并得到了友人的幫助,其中遇到了不少坑,希望可以幫助到大家。 工具介紹: Webpack: Webpack可以使用webpack dev server實現熱替換和刷新,極大解放了前端開發人員的工作。通過前后端分離的開發方式,可以在年輕團隊中快速使用(所需要學習的成本較低)。 Ngnix/Aapache: 使用Ngnix/Aapache實現靜態文件和動態文件分流,可是較為方便的解耦前后端的關系,并可以協同迭代開發,實現小步快跑的開發模式。 Tomcat: Tomcat容器運行J2EE代碼,主要關注業務邏輯,我目前采用的時SPRingMVC+Spring+MyBatis+Shiro實現,由于部分使用了Shiro+jsp的權限訪問,因此頁面還是由JSP先加載,然后加載圖片,CSS和js等資源。 ReactJS: 前端框架,充分利用其組件的思想,可以加快頁面的開發速度和開發團隊的工作積累。 下圖為開發時的代理邏輯圖,不同的開發角色具有不同的選擇: 代理邏輯圖 通過上面邏輯圖的方式有利于實現前后端分離的開發模式,升級和部署也比較方便。 在開發團隊內部,建立一個測試服務器,把后端代碼部署在服務器上,后臺團隊升級時部署升級測試服務器的tomcat代碼,同時部署代理服務器和前端代碼,測試人員可以對測試服務器的程序進行測試。前端開發人員和手機App開發人員通過訪問測試服務器上的代理(Aapache/Nginx)端口,這樣前端/App開發人員就不需要關心后端的運行環境。 前后端開發分離示意圖 注意:筆者在Windows10上面測試發現,Nginx+webpack-dev-server在Windows存在請求阻塞1分鐘的問題,而采用文件代理不存在問題,如果Windows運行webpack-dev-server, Ubuntu運行Nginx,就沒有這個問題。經過好幾天的折騰沒有找到原因,而采用Apache解決了Windows上這個代理問題。建議配置為:Windows采用Apache + Tomcat+Webpack,蘋果或者linux系統采用Nginx,或者都用Apache. Windows服務器部署建議采用2.4版本以上。


Apache的代理配置說明 Apache的配置文件主要包含兩個部分: Windows下是:conf/httpd.conf和extra/httpd-vhosts.conf Linux下是:conf/httpd.conf, conf.d/xxx.conf, conf.modules.d/00-proxy.conf 為達到上述目的的代理功能,需要加載Apache的模塊,主要有: proxy_module, proxy_connect_module, proxy_express_module, proxy_ftp_module, proxy_html_module, proxy_http_module, proxy_wstunnel_module, rewrite_module, xml2enc_module 在httpd.conf文件或者00-base.conf文件中取消前面的“#”注釋符。

本文采用的目錄結構如下: 項目虛擬路徑是:/JFGJ 圖片虛擬路徑:/JFGJ/images/ css, js靜態文件虛擬路徑:/JFGJ/static webpack編譯后的目錄為 :[前端目錄]/build 1. 代理本地文件 Apache本地文件的代理需要3個指令才可以(采用代理時引入的復雜性)

Alias "/JFGJ/images" "D:/Intelligence Monitoring/JFGJ/web/images"<Directory "D:/Intelligence Monitoring/JFGJ/web/images"> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>ProxyPass "/JFGJ/images" "!"

指令說明: Alias使用別名,把URL映射到一個目錄 Directory定義了一個目錄,以及權限,2.4以上版本采用Require all granted獲得訪問權限。 ProxyPass 為代理配置,把遠程服務器的服務映射到本地,由于采用了前后端分離,后端文件和前端文件在不同服務器上,需要使用代理。同時,由于使用了多個代理后,代理的路徑存在優先級。Apache采用配置文件的順序,因此,需要對本地文件的代理時,需要使用感嘆號“!”實現對子目錄的代理訪問(排除從遠程服務器代理)。 2. 代理webpack-dev-server

ProxyPass /JFGJ/static/ http://localhost:8080/ProxyPassReverse /JFGJ/static/ http://localhost:8080/

代理webpack-dev-server較為容易,使用ProxyPass和ProxyPassReverse兩個指令,第一個參數為需要代理的虛擬目錄前綴,后面為后端服務器的URL。需要注意是最后的“/”結束符,第一個參數有,那么第二個參數也需要有。同時,由于采用了“/”結束符,那么URL替換時是把匹配部分給替換掉。由于webpack-dev-server訪問文件時是直接使用http://localhost:8080/xxx.css訪問的,所以需要把http://localhost/JFGJ/static/xxx.css替換為http://localhost:8080/xxx.css. 3. 代理tomcat

ProxyPass /JFGJ http://192.168.1.50:8080/JFGJProxyPassReverse /JFGJ http://192.168.1.50:8080/JFGJ

代理tomcat服務也類似,采用webpack的代理方法相同。這里主要說明一下配置的順序。 /JFGJ虛擬目錄需要代理到后端服務器的/JFGJ目錄 /JFGJ/images需要代理到本地文件 /JFGJ/static需要代理到webpack服務器 例如下發配置為前端開發人員的代理配置:

Alias "/JFGJ/images" "D:/Intelligence Monitoring/JFGJ/web/images"<Directory "D:/Intelligence Monitoring/JFGJ/web/images"> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>ProxyPass /JFGJ/static/ http://localhost:8080/ProxyPassReverse /JFGJ/static/ http://localhost:8080/ProxyPass "/JFGJ/images" "!"ProxyPass /JFGJ http://192.168.1.50:8080/JFGJProxyPassReverse /JFGJ http://192.168.1.50:8080/JFGJ
Nginx的代理配置說明 Nginx配置文件是nginx.conf 代理本地文件location ^~ /JFGJ/images/{ alias "D:/Intelligence Monitoring/JFGJ/web/images/";}

采用location + alias指令 2. 代理webpack-dev-server

location ^~ /JFGJ/static/{ proxy_pass http://localhost:8080/;}

采用location + proxy_pass指令 3. 代理tomcat 與代理webpack服務器類似:

location /JFGJ/ { proxy_pass http://192.168.1.50:8080;}

所有配置項如下:

location /JFGJ/ { proxy_pass http://192.168.1.50:8080;}location ^~ /JFGJ/static/{ proxy_pass http://localhost:8080/;}location ^~ /JFGJ/images/{ alias "D:/Intelligence Monitoring/JFGJ/web/images/";}

需要說明的是Nginx的location對正則表達式是較為容易支持的,location直接支持,使用“~”表明后面的URL是一個正則表達式匹配。而Apache需要使用ProxyMatch指令實現匹配,并通過ReWrite實現URL重寫,從學習角度而言,Nginx配置相對而言簡單一些??墒荳indows下的問題,讓我不得不使用Apache,而且Apache新版本也是很好用的,包括在Linux系統中。


發現的問題: 1. Windows環境下,Webpack + Ngnix + Tomcat出現超時1分鐘的問題? Nginx超時問題1 Nginx超時問題2 沒有找到解決方案,并希望有高手幫到我。 2. Apache在某些Windows機器上存在代理失敗的問題? 關閉殺毒軟件,問題解決。網上說是Apache用了一些API,殺毒軟件實施了攔截,導致代理失敗。 3. Apache運行一段時間后出現無法訪問的問題,重啟Apache服務后正常? 該問題是由于AcceptEx API訪問拒絕導致的問題,日志中由相關錯誤信息,可以添加一下配置行解決。 AcceptFilter http none AcceptFilter https none AcceptEx參考連接


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产在线视频不卡| 中文字幕国产亚洲2019| 欧美日韩在线视频一区| 国产激情久久久久| 亚洲综合在线小说| 91av在线不卡| 91在线免费看网站| 色老头一区二区三区| 亚洲第一区第二区| 久久久免费av| 日韩欧美一区二区三区久久| 伊人男人综合视频网| 亚洲国产精品电影在线观看| 久久青草精品视频免费观看| 久久久视频精品| 亚洲男人的天堂在线| 国产精品自产拍在线观看| 97久久精品视频| 日韩av中文字幕在线| 日韩欧美一区二区三区久久| 亚洲日本成人女熟在线观看| 欧美极品第一页| 欧美日韩国产中字| 日韩欧美在线视频免费观看| 国产精欧美一区二区三区| 色偷偷av一区二区三区| 国产99视频精品免视看7| 久久av红桃一区二区小说| 日韩中文字在线| 国模叶桐国产精品一区| 亚洲第一区中文99精品| 久久人人爽人人爽人人片av高清| 久久精视频免费在线久久完整在线看| 久久男人av资源网站| 国产欧美一区二区三区在线| 日韩av在线网页| 亚洲图片欧美日产| 欧美夫妻性生活xx| 九九热这里只有精品免费看| 欧美韩国理论所午夜片917电影| 日韩欧美精品网站| 日产精品久久久一区二区福利| 国产午夜精品免费一区二区三区| 欧美高清激情视频| 91精品国产九九九久久久亚洲| 黄色成人在线免费| 91中文精品字幕在线视频| 欧美性高跟鞋xxxxhd| 中文字幕国产精品| 亚洲精品一区av在线播放| 777午夜精品福利在线观看| 亚洲电影成人av99爱色| 日韩天堂在线视频| 一区二区三区视频免费在线观看| 亚洲天堂av女优| 亚洲国产中文字幕久久网| 国产高清视频一区三区| 精品性高朝久久久久久久| 色老头一区二区三区| 色综合久久久888| 亚洲精品动漫久久久久| 欧美激情影音先锋| 欧美亚洲国产视频小说| 欧美福利视频在线| www.久久撸.com| 欧美裸身视频免费观看| 91精品国产综合久久香蕉922| 日韩中文第一页| 亚洲欧美一区二区三区四区| 欧美日韩亚洲91| 91av免费观看91av精品在线| 亚洲第一天堂av| 国产欧美日韩中文| 精品动漫一区二区| 国产精品三级美女白浆呻吟| 国产精品久久久久久久久久免费| 国产精品久久久久久久久久ktv| 91极品视频在线| 综合激情国产一区| 88国产精品欧美一区二区三区| 2019av中文字幕| 亚洲福利视频网站| 免费av一区二区| 亚洲精品一区av在线播放| 日韩av在线播放资源| 国内精品久久久久影院优| 国产精品久久网| 欧美男插女视频| 国产精品欧美日韩| 青青a在线精品免费观看| 日韩欧美高清在线视频| 国产精品嫩草视频| 亚洲精品丝袜日韩| 亚洲精品美女免费| 日韩成人中文字幕在线观看| 亚洲视频999| 亚洲毛片一区二区| 久久国产一区二区三区| 欧美午夜精品久久久久久浪潮| 国产精品美乳一区二区免费| 精品免费在线观看| xx视频.9999.com| 91亚洲精品久久久久久久久久久久| 久久久久久久一| 日韩美女激情视频| 亚洲成人av在线播放| 国产亚洲欧美另类中文| 中文字幕av一区二区三区谷原希美| 亚洲二区在线播放视频| 久久精品国产2020观看福利| 亚洲精品av在线| 日韩中文字幕免费看| 欧美香蕉大胸在线视频观看| 国内揄拍国内精品| 欧美日韩加勒比精品一区| 4p变态网欧美系列| 国产一区二区久久精品| 精品成人av一区| 日韩中文字幕精品视频| 韩国一区二区电影| 国产一区二区三区中文| 欧美性理论片在线观看片免费| 欧美性猛交xxxx富婆| 亚洲欧美国产日韩天堂区| 亚洲日本中文字幕免费在线不卡| 色中色综合影院手机版在线观看| 日韩中文娱乐网| 国产精品一区二区性色av| 亚洲高清一区二| 国产精品免费一区二区三区都可以| 在线观看亚洲视频| 国产欧美精品日韩| 久久色免费在线视频| 91国产高清在线| 久久色在线播放| 亚洲最大激情中文字幕| 91禁外国网站| 亚洲偷欧美偷国内偷| 91久久精品美女| 中文字幕九色91在线| 久久久久久久久中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 国产日韩欧美在线| 精品毛片三在线观看| 成人福利视频在线观看| 亚洲精品久久久久国产| 精品国产一区二区三区久久| 中文字幕亚洲欧美日韩高清| 欧美日韩一区二区免费在线观看| 欧美久久久精品| 国产九九精品视频| 18一19gay欧美视频网站| 国产精品黄页免费高清在线观看| 国产精品亚洲片夜色在线| 欧美一区二区三区艳史| 国产精品美乳在线观看| 国产视频久久久久| 91在线精品视频| 日韩精品亚洲元码| 在线亚洲欧美视频| 日韩黄色在线免费观看| 国产美女扒开尿口久久久| 精品国产精品自拍| 亚洲精品v欧美精品v日韩精品|