寰堝鍓嶇鏈嬪弸鍙兘瀵规湇鍔″櫒閰嶇疆涓嶆槸寰堜簡瑙c€備粖澶╃獊鐒剁炕鍒颁箣鍓嶅啓鐨勮繖绡囨枃绔狅紝淇敼鍚庣粰澶у鍒嗕韩涓€浜涘父瑙佺殑web鏈嶅姟鍣ㄩ」鐩儴缃叉柟寮忋€備笂闈㈡彁鍒扮殑姣忎釜鏈嶅姟鍣ㄩ兘闈炲父澶嶆潅锛岄毦浠ユ繁鍏ャ€傚湪鏈枃涓紝鎴戜滑鍙璁哄熀鏈殑閮ㄧ讲鍜屼娇鐢ㄣ€傛洿楂樼骇鐨勭煡璇嗗拰鐢ㄦ硶锛岃繕闇€瑕佷綘鑷繁鍘绘帰绱㈠拰鍙戠幇銆傚湪寮€濮嬮槄璇讳箣鍓嶏紝鎴戝笇鏈涗綘鑳藉厛浜嗚В涓€浜汱inux鍩虹鐭ヨ瘑锛岃繖鏍锋墠涓嶄細鏄惧緱闅俱€傛敞鎰忥細涓嬮潰鐨勪緥瀛愬ぇ閮ㄥ垎閮芥槸鍩轰簬vue-router鐨刪istory妯″紡鎵撳寘鐢熸垚鐨勯潤鎬佹枃浠讹紝鍏朵粬妗嗘灦绫讳技銆侼ginx鏈嶅姟鍣∟ginx鏄竴涓珮鎬ц兘鐨凥TTP鍜屽弽鍚戜唬鐞哤eb鏈嶅姟鍣ㄣ€傚湪楂樺苟鍙戣繛鎺ョ殑鎯呭喌涓嬶紝Nginx琛ㄧ幇鐩稿綋涓嶉敊銆侼ginx鐨勫畨瑁呰繖閲屽氨涓嶈浜嗭紝鏈夐渶瑕佺殑鏈嬪弸鍙互鐪嬭繖涓厤缃慨鏀逛负浜嗘敮鎸乭istory妯″紡锛屾垜浠渶瑕佷慨鏀筺ginx/conf/nginx.conf鏂囦欢location/{roothtml;try_files$uri$uri//绱㈠紩銆傜綉椤?#娣诲姞杩欎竴琛宨ndexindex.htmlindex.htm;}鐒跺悗鎶婇潤鎬佽祫婧愭斁鍒癶tml鏂囦欢澶逛笅锛屽惎鍔∟ginx鏈嶅姟鍣╟dusr/local/nginx/sbin./nginx鐒跺悗璁块棶浣犵殑鏈嶅姟鍣ㄥ氨OK浜嗐€侴Zip鏀寔nginx瀹炵幇璧勬簮鍘嬬缉鐨勫師鐞嗘槸閫氳繃ngx_http_gzip_module妯″潡鎷︽埅璇锋眰锛屽闇€瑕乬zip鐨勭被鍨嬭繘琛実zip鍘嬬缉銆傝妯″潡涓洪粯璁ゅ熀纭€锛屾棤闇€閲嶆柊缂栬瘧锛岀洿鎺ユ墦寮€鍗冲彲銆備竴鑸厤缃涓?寮€鍚拰鍏抽棴gzip妯″紡gzipon|off;#gizp鍘嬬缉璧风偣锛屾枃浠跺ぇ浜?k鎵嶅帇缂ゞzip_min_length1k;#gzip鍘嬬缉绾у埆锛?-9锛屾暟瀛楄秺澶ц秺濂絞zip_comp_level1鍘嬬缉锛屼互鍙婃洿澶氱殑CPU鏃堕棿锛?瑕佸帇缂╃殑鏂囦欢绫诲瀷銆俫zip_typestext/plainapplication/javascriptapplication/x-javascripttext/cssapplication/xmltext/javascript;#nginx鎵撳紑闈欐€佹枃浠跺鐞嗘ā鍧楀悗浼氭煡鎵句互.gz缁撳熬鐨勬枃浠讹紝涓嶅崰鐢╟pu鐩存帴杩斿洖processingCompress锛屽鏋滄病鏈夋壘鍒帮紝涓嶅帇缂ゞzip_staticon|off#鏄惁鍦╤ttp澶翠腑娣诲姞Vary:Accept-Encoding锛屽缓璁紑鍚痝zip_varyon锛?璁剧疆鍘嬬缉鎵€闇€鐨勭紦鍐插尯澶у皬锛屼互4k涓哄崟浣嶏紝濡傛灉鏂囦欢鏄?k鍒欑敵璇?*4k鐨勭紦鍐插尯gzip_buffers24k;#璁剧疆gzip鍘嬬缉鐨凥TTP鍗忚鐗堟湰gzip_http_version1.1;Nginx閰嶇疆绠€鍗曪紝浣嗘槸鍔熻兘寰堝己澶э紝proxy锛宭oad绛夐兘寰堝疄鐢ㄣ€侫pache鏈嶅姟鍣ˋpache鏄€嬧€嬩笘鐣屾帓鍚嶇涓€鐨刉eb鏈嶅姟鍣ㄨ蒋浠讹紝搴旂敤骞挎硾銆傜敱浜嶸ueRouter鐨刪ash鏂瑰紡鏈川涓婁笌闈欐€佽祫婧愮浉鍚岋紝鎵€浠ュ湪Apache涓婂彂甯冪浉瀵圭畝鍗曘€傝繖閲岃烦杩囧彂甯冿紝鐩存帴杩涘叆閰嶇疆銆傛敮鎸佸巻鍙叉ā寮忋€傚熀鏈厤缃淇敼Apache榛樿閰嶇疆锛岄鍏堣閲嶆柊淇敼\conf\httpd.conf鏂囦欢璁╂枃浠舵敮鎸乺ewrite鎵惧埌//杩欒闇€瑕佸彇娑堟敞閲婃墠鑳藉鍏ヨ繖涓ā鍧桳oadModulerewrite_modulemodules/mod_rewrite.so鐒跺悗娣诲姞鎴栦慨鏀逛互涓嬩唬鐮?閲嶅啓鏂囦欢鏍圭洰褰旸ocumentRoot"/usr/local/apache/demo"#directory##Options鎸囦护鐨勫彲鑳藉彇鍊兼湁鈥淣one鈥濄€佲€淎ll鈥濄€?鎴栦互涓嬪悇椤圭殑浠绘剰缁勫悎锛?IndexesIncludesFollowSymLinksSymLinksifOwnerMatchExecCGIMultiViews##娉ㄦ剰鈥淢ultiViews鈥濆繀椤?鏄庣‘*---鈥淥ptionsAll鈥?涓嶄細缁欎綘銆侽ptionsIndexesFollowSymLinks##ModifynotallowedtooverrideAllowOverrideall##鎺у埗璋佸彲浠ヤ粠杩欎釜鏈嶅姟鍣ㄨ幏鍙栦笢瑗裤€?Requireallgrantedaddhtaccesrules浠ヤ笂鎿嶄綔鏃讹紝淇敼鏈嶅姟鍣ㄧ殑榛樿閰嶇疆锛屼娇鏈嶅姟鍣ㄦ敮鎸丷ewrite銆傛帴涓嬫潵锛屽垱寤轰竴涓噸鍐欒鍒欍€傞鍏堬紝鍦ㄤ笌index.html鐩稿悓鐨勭骇鍒垱寤轰竴涓柊鐨?htacces鏂囦欢銆傝鎯呰鍙傝€僔ue-Router瀹樼綉銆傜ず渚?IfModulemod_rewrite.c>RewriteEngineOnRewriteBase/RewriteRule^index\.html$-[L]RewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule銆?index.html[L]Apache鍚敤Gzip鍘嬬缉/usr/local/apache/bin/apxs-i-c-n-amod_deflate.soTomcat鏈嶅姟鍣ㄩ儴缃插湪杩欎釜鍓嶅悗绔垎绂荤殑澶х幆澧冧笅锛屼竴鑸笉浼氭湁澶浜轰娇鐢═omcat浣滀负web鏈嶅姟鍣ㄣ€傛湁浜涘叕鍙稿彲鑳戒細鍜孲pringMVC涓€璧蜂娇鐢ㄣ€傚氨鍐欏埌杩欓噷鍚с€傚畠鐨勯厤缃篃闈炲父绠€鍗曘€傞厤缃畇erver.xml棣栧厛鍦═omcat鏈嶅姟鍣ㄧ洰褰曚笅鎵惧埌tomcat/conf/server.xml鏂囦欢锛屾壘鍒癏ost锛屼慨鏀规垚鑷繁鎯宠鐨勯厤缃€備富瑕佹槸appBase锛屽畠鍐冲畾浜嗛潤鎬佹枃浠舵煡璇㈢殑鍩虹洰褰曘€?Hostname="localhost"appBase="webapps"unpackWARs="true"autoDeploy="true">閰嶇疆鏀寔History妯″紡鍙渶瑕佸湪鍙戝竷鏂囦欢澶规坊鍔燱EB-INF閰嶇疆鍗冲彲鏂囦欢澶广€傚涓嬪浘锛屽鏋滈」鐩腑鏀剧疆浜哤EB-INF鏂囦欢澶癸紝閭d箞tomcat浼氳嚜鍔ㄦ壂鎻忔枃浠跺す涓殑web.xml骞舵坊鍔犻厤缃€??xmlversion="1.0"encoding="ISO-8859-1"?>webapp404/index.html杩欐槸閰嶇疆锛屽彲浠ヨ鏄畝鍗曘€傝嚦浜庡浣曞畨瑁匱omcat鏈嶅姟鍣紝鎴戜滑鑷繁瑙e喅鍚ю煒丯uxt椤圭洰锛堟湇鍔$娓叉煋锛夊湪鍙戝竷SSR椤圭洰鐨勬椂鍊欙紝瀹樻柟鎺ㄨ崘浜嗕袱绉嶆柟寮忥細鏈嶅姟绔覆鏌撳簲鐢ㄩ儴缃插拰闈欐€佸簲鐢ㄩ儴缃层€傞潤鎬佸簲鐢ㄩ儴缃插熀鏈け鍘讳簡SSR鐨勪紭鍔匡紝閮ㄧ讲鏂瑰紡鍜屼笂闈㈢被浼笺€傝繖閲屽彧璁叉湇鍔$娓叉煋搴旂敤閮ㄧ讲銆傛湇鍔$娓叉煋搴旂敤閮ㄧ讲涓嶅悓浜庨潤鎬侀儴缃层€傛垜浠繕闇€瑕佸湪鏈嶅姟鍣ㄤ笂閮ㄧ讲Node鐜銆俷ode鐜閮ㄧ讲cd鍒?usr/local鏂囦欢澶逛笅鏂板缓鏂囦欢澶筺ode瀛樻斁瀹夎鐜锛岀劧鍚庤繘鍏ode鏂囦欢澶癸紙鍚嶅瓧鍙互闅忔剰锛岃繖閲屾槸demo浣跨敤node锛塩d/usr/localmkdir-pnode涓嬭浇鑺傜偣鎴戣繖閲屼娇鐢ㄧ殑鏄渶鏂扮殑闀挎湡鏈嶅姟鐗堟湰銆傚鏋滀綘鎯冲畨瑁呭叾浠栫増鏈紝浣犲彲浠ュ湪杩欓噷鎵惧埌瀹冧滑銆傛偍杩樺彲浠ヤ娇鐢╪vm鏉ョ鐞嗘偍鐨勮妭鐐广€傜畝鍗曟暀绋媤gethttps://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.gz涓嬭浇瀹屾垚鍚庤В鍘嬪苟閲嶅懡鍚嶆枃浠跺す#瑙e帇鍒板綋鍓嶆枃浠跺すtar-zxvfnode-v10.13.0-linux-x64.tar.gz-C./#閲嶅懡鍚峬vnode-v10.13.0-linux-x64/./node10.13.0寤虹珛杞摼鎺ワ紝娉ㄥ唽node鍜宯pm鐨勭幆澧冨彉閲忥紙鍏朵粬npm鍏ㄥ眬鍖呬篃瑕佽繖鏍锋敞鍐?#杞摼鎺ユ寚鍚憂odenpmln-s/usr/local/node/node10.13.0/bin/node/usr/local/bin/nodeln-s/usr/local/node/node10.13.0/bin/npm/usr/local/bin/npm鏌ョ湅杞欢鏄惁閾炬帴寤虹珛鎴愬姛锛焞s-al/usr/local/bin鏄剧ず濡備笅锛岃〃绀烘垚鍔熴€傜劧鍚庝娇鐢╪ode-vnode-v#锛屽嚭鐜扮増鏈彿锛岃鏄庡畨瑁呮垚鍔熴€倂10.13.0鑷虫锛屾垜浠殑Node鐜宸茬粡瀹夎鎴愬姛锛屾帴涓嬫潵杩涘叆nuxtdeploymentnuxtdeployment鍏ㄥ眬瀹夎nuxt锛岀劧鍚庢寜鐓т笂闈㈢殑鏂规硶寤虹珛杞繛鎺?installnpminuxt-g#寤虹珛杞繛鎺n-s/usr/local/node/node10.13.0/bin/nuxt/usr/local/bin/nuxt浠g爜閮ㄧ讲鍥?local鏂囦欢澶癸紝鎴戜滑鍒涘缓涓€涓猲uxt鏂囦欢瀛樻斁鎴戠殑nuxt宸ョ▼銆傜劧鍚庤繘鍏uxt鏂囦欢澶?鍥炲埌localcd../mkdirnuxtcdnuxt鍦ㄦ湰鍦扮幆澧冩墽琛宯uxtbuild锛岀劧鍚庝細鐢熸垚涓€涓?nuxt鏂囦欢澶广€傜劧鍚庝慨鏀筽ackage.json锛屽湪鍏朵腑娣诲姞鏂扮殑鍐呭锛宯uxt搴旂敤浼氳嚜鍔ㄦ寜鐓у涓嬮厤缃厤缃湇鍔$殑绔彛鍙峰拰鍦板潃銆?config":{"nuxt":{"host":"0.0.0.0",#閫氳繃IPV4璁块棶鈥滅鍙b€濓細xxxx}}锛岀劧鍚庡湪椤圭洰涓坊鍔?nuxt鏂囦欢澶归潤鎬佹枃浠跺すpackage.jsonnuxt.config涓婁紶.js鍒版湇鍔″櫒鐨刵uxt鏂囦欢澶逛笅锛岀劧鍚庡湪nuxt鏂囦欢澶逛笅鎵ц#涓轰簡鏂逛究锛屾垜杩欓噷鍦ㄦ湇鍔″櫒涓婃墽琛屼簡install锛屽畼鏂归」鐩笉鎺ㄨ崘杩欐牱銆俷pm鎴戜笅杞藉畬鎴愬悗鎵цnuxtstart锛屽嚭鐜板涓嬫棩蹇椼€傛垜浠凡缁忔垚鍔熷惎鍔ㄤ簡鎴戜滑鐨刵uxt搴旂敤绋嬪簭pm2銆傛棦鐒舵垜浠娇鐢ㄤ簡Node鏈嶅姟锛岄偅涔堟垜浠渶濂戒娇鐢╬m2浣滀负杩涚▼瀹堝崼銆傝嚦浜巔m2鏄粈涔堬紝pm2鏄共浠€涔堢殑锛屾湰鏂囦笉鍋氳繃澶氳禈杩般€傛湁鍏磋叮鐨勫彲浠ヨ嚜宸辩敤鐪嬬湅銆傞鍏堝畨瑁卲m2npmipm2-g#寤虹珛杞繛鎺n-s/usr/local/node/node10.13.0/bin/pm2/usr/local/bin/pm2鐒跺悗鍦╬ackage.json涓坊鍔爌m鍚姩鍛戒护鎴栬€呯洿鎺ュ儚涓嬮潰寮€濮?package.json"scripts":{"pm2:nuxt":"pm2startnpm--name'XXX'--runnuxt:start",#鍚姩鍚嶄负xxx鐨勮繘绋?nuxt:start":"PORT=xxxxnuxtstart","start":"nuxtstart","generate":"nuxtgenerate","pm2:stop:all":"pm2stopall"#鍋滄鎵€鏈夎繘绋媫#鐩存帴鍚姩鍛戒护pm2startnpm--name'XXX'--runnuxt:start濡傛灉鍑虹幇杩欐牱鐨勬棩蹇楋紝灏变唬琛ㄦ垚鍔熶簡銆備笅闈㈡槸涓€浜涘父鐢ㄧ殑pm2鍛戒护銆俻m2start0#鍚姩id涓?鐨勬寚瀹氬簲鐢╬m2restart0#閲嶅惎id涓?鐨勬寚瀹氬簲鐢╬m2stop0#鍋滄id涓?鐨勬寚瀹氬簲鐢╬m2delete0#鍒犻櫎id涓?鐨勬寚瀹氬簲鐢╬m2list#鏌ョ湅褰撳墠runningprocesspm2startall#鍚姩鎵€鏈夊簲鐢ㄧ▼搴弍m2restartall#閲嶅惎鎵€鏈夊簲鐢ㄧ▼搴弍m2stopall#鍋滄鎵€鏈夊簲鐢ㄧ▼搴弍m2deleteall#鍏抽棴骞跺垹闄ゆ墍鏈夊簲鐢ㄧ▼搴弍m2logs#鎺у埗鍙版樉绀烘墍鏈夋棩蹇梡m2logs0#鎺у埗鍙版樉绀烘棩蹇楃紪鍙?pm2show0#鏌ョ湅鎵ц缂栧彿涓?鐨勮繘绋媝m2monitxxx#鐩戣鍣ㄥ悕绉版鏃秞xxx杩涚▼涓儴缃蹭簡涓€涓狽uxt搴旂敤銆傚凡缁忓嚭鐜扮殑闂鏄痥oaserver.js鍚姩鏃舵棤娉曡闂缃戙€備娇鐢ㄩ樋閲屼簯鏈嶅姟鍣紝宸叉坊鍔犲畨鍏ㄧ粍瑙勫垯銆傜洰鍓嶈繕娌℃湁鎵惧埌杩欎釜闂鐨勫叿浣撳師鍥狅紝涓嶈繃鏄敼浜唍uxtstart澶栫綉鍚庢墠鍙互椤哄埄璁块棶銆傚笇鏈涚煡閬撶殑浜哄彲浠ヨВ绛斻€傛潈闄愪笉瓒炽€備娇鐢╯udosu鏌ユ壘nodenpm绛夊懡浠ゃ€傝繖寰堢畝鍗曘€傝鎴戜滑閲嶆柊寤虹珛涓€涓蒋閾炬帴銆俿udoln-s/usr/local/bin/node/usr/bin/nodesudoln-s/usr/local/lib/node/usr/lib/nodesudoln-s/usr/local/bin/npm/usr/bin/npm鎬荤粨涓€涓嬶紝椤圭洰鍋氬畬浜嗭紝涓€瀹氳鏁撮綈鍦板彂甯冩墠鏈夋垚灏辨劅鍚ю煒侊紝鏂囦腑鏈嶅姟鍣ㄧ殑绉嶇被寰堝锛屼笉杩囧瀛︾偣涔熸棤濡煒紝瀛﹀畬濡備綍閰嶇疆鏈嶅姟鍣紝鍔犱笂Node鐨勮嚜鍔ㄨ剼鏈彂甯冿紝鍙戝竷浣撻獙绠€鐩村涓濊埇椤烘粦銆傚師鏂囧湴鍧€瑙夊緱鏈夌敤灏辩粰涓瓙