成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Nodejs綁定域名與反向代理

thekingisalwaysluc / 1437人閱讀

摘要:所有的都不是完整的程序,所有未上線的程序都僅僅是個(gè)作為開(kāi)發(fā)的后起之秀,在現(xiàn)在的國(guó)內(nèi)環(huán)境下,雖比不上的火熱,沒(méi)有那么廣大的群眾基礎(chǔ),蓋不過(guò)的高大上,但基于谷歌引擎的極速,異步與事件模型,無(wú)疑將是開(kāi)發(fā)的重大革新我是一個(gè)小前端,自從知道,就覬覦其

所有的Demo都不是完整的程序,所有未上線的程序都僅僅是個(gè)Demo;

Nodejs作為Web開(kāi)發(fā)的后起之秀,在現(xiàn)在的國(guó)內(nèi)環(huán)境下,雖比不上PHP的火熱,沒(méi)有.net那么廣大的群眾基礎(chǔ),蓋不過(guò)Java的高大上,但Nodejs基于谷歌V8引擎的極速,異步IO與事件模型,無(wú)疑將是Web開(kāi)發(fā)的重大革新;我是一個(gè)小前端,自從知道Nodejs,就覬覦其好久,翹首以盼終于在業(yè)余用Express4.x斷斷續(xù)續(xù)做了一個(gè)個(gè)人博客;

為了讓我的博客不只是一個(gè)躺在本地的Demo,我買(mǎi)了個(gè)服務(wù)器,搭建好環(huán)境,選好日子,準(zhǔn)備上線了,上線后就發(fā)現(xiàn)自己傻逼了……在目前的國(guó)內(nèi),Nodejs算是小眾的,最多是個(gè)比較有情調(diào)的,適合有閑情雅致的人去消遣;當(dāng)然,問(wèn)題不可避免,牢騷你也可以隨便,但既然選擇了,就要相信自己不是盲目的,當(dāng)然還得堅(jiān)定的走下去;在此和那些喜歡Nodejs,喜歡前端的小伙伴們分享一下關(guān)于上線后首先要解決的域名綁定問(wèn)題;可能你搞過(guò).net、PHP什么的,有IIS、一鍵建站的軟件,那么這些都無(wú)所謂,我只是站在一個(gè)小前端的視角,分享下基于Nodejs的建站問(wèn)題;

現(xiàn)在已經(jīng)非常流行Nginx反向代理的方式了,當(dāng)我百度后最開(kāi)始也是選擇了用Nginx來(lái)反向代理我的博客站點(diǎn);我是個(gè)服務(wù)器小白,一開(kāi)始真心傷不起啊,不過(guò)也沒(méi)什么可怕的,你只需要按照別人分享的模子,修改成你的就可以了,除非你想正兒八經(jīng)的搞運(yùn)維;當(dāng)然不可避免的肯定會(huì)出現(xiàn)些未預(yù)知的小問(wèn)題,比如:代理后客戶(hù)端的IP獲取問(wèn)題(我那時(shí)獲取所有客戶(hù)的IP都是一樣的……),上傳文件的大小限制問(wèn)題,都需要你再次重新配置相關(guān)的Nginx配置項(xiàng);

基本配置方式如下:

命令行進(jìn)入nginx.exe目錄 -> start nginx (啟動(dòng)nginx) -> 打開(kāi)conf目錄里的nginx.conf 文件 –> 新增一段upstream

  upstream nodejs{

      server 127.0.0.1:3000;    //你的Express項(xiàng)目端口

      # server 127.0.0.1:3001;

      keepalive 64;

  }

-> 在后面的server{}里引用這里定義好的nodejs

完整的片段如下:

server {
         listen 80;
         server_name www.famanoder.com famanoder.com;  //請(qǐng)求到80端口的host
         location / {
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header Host  $http_host;
              proxy_set_header X-Nginx-Proxy true;
              proxy_set_header Connection "";
              proxy_pass      http://nodejs;
         }
  }
     
 重啟nginx:nginx –s reload或者nginx –c conf/nginx.conf

那么不出意外的話(huà),你現(xiàn)在可以用域名訪問(wèn)你的博客了;

Nodejs是強(qiáng)大的;

幾天后我知道了Nodejs的http-proxy模塊,就是用來(lái)創(chuàng)建代理服務(wù)器的;反正都是折騰,我毅然決然選擇了不用nginx,使用屬于Noders的http-proxy;并不是nginx不好用,只是個(gè)人選擇偏好問(wèn)題;相信前端出身的Noders們也肯定會(huì)對(duì)自家的模塊更熱衷;

http.createServer()創(chuàng)建一個(gè)常規(guī)http服務(wù)器監(jiān)聽(tīng)80端口,通過(guò)http-proxy模塊proxy.createProxyServer()創(chuàng)建代理服務(wù)器,每次請(qǐng)求由proxy.web()方法來(lái)進(jìn)行分發(fā);

根目錄下新建一個(gè)proxy.js文件:

 var proxy=require(‘http-proxy’).createProxyServer({});

 proxy.on(function(err,req,res){

      res.writeHead(500,{

           ‘Content-Type’:’text/plain’

      });

});

 var server=require(‘http’).createServer(function(req,res){

 var host= req.headers.host;

 switch(host){

      case ‘www.famanoder.com’:

           proxy.web(req,res,{target:’http://localhost:3000’});

      break;

      case "famanoder.com":

                proxy.web(req, res, { target: "http://localhost:4030" });

        break;

        default: 

           res.writeHead(200, { 

                "Content-Type": "text/plain" 

           }); 

           res.end("Welcome to my server!");

    }

});

console.log("listening on port 80")

server.listen(80);

是不是也很不錯(cuò)啊,看起來(lái)就很爽,OK,接下來(lái)就是到app.js下去使用proxy模塊了;

加一句:require(‘./proxy’);就行了,到瀏覽器里看看是不是一樣實(shí)現(xiàn)了反向代理。

至此,Nodejs反向代理的兩種方式就都實(shí)現(xiàn)了,這不是Demo,你的程序真正在跑了;接下來(lái)就是要根據(jù)具體的其他業(yè)務(wù),后續(xù)跟進(jìn)和進(jìn)一步探索了;

上個(gè)周末出去溜達(dá)時(shí),看到一個(gè)大叔的后背上印著一行字:“要做就做大將軍!”,當(dāng)時(shí)我就在心里為這位大叔點(diǎn)了一萬(wàn)個(gè)贊,我本布衣,一介碼農(nóng),路漫漫其修遠(yuǎn)兮,道阻且長(zhǎng),可是——我們正青春!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78236.html

相關(guān)文章

  • 阿里云服務(wù)器部署 nodejs + mongodb + nginx 反向代理 + https配置 s

    摘要:感謝老師,老師的慕課網(wǎng)教程購(gòu)買(mǎi)阿里云服務(wù)器及域名終端連接阿里云服務(wù)器環(huán)境輸入密碼購(gòu)買(mǎi)時(shí)的密碼如果出現(xiàn)這個(gè)問(wèn)題的解決方案解決方法查看硬盤(pán)掛在情況如果有數(shù)據(jù)盤(pán)的情況下查看硬盤(pán)使用情況通過(guò)設(shè)置快捷登錄權(quán)限,可以增加幾個(gè)擁有權(quán)限的用戶(hù)下查 感謝 Scott 老師,Scott老師的慕課網(wǎng)教程 https://coding.imooc.com/clas... 1. 購(gòu)買(mǎi)阿里云服務(wù)器及域名 2. ...

    jerryloveemily 評(píng)論0 收藏0
  • 阿里云服務(wù)器部署 nodejs + mongodb + nginx 反向代理 + https配置 s

    摘要:感謝老師,老師的慕課網(wǎng)教程購(gòu)買(mǎi)阿里云服務(wù)器及域名終端連接阿里云服務(wù)器環(huán)境輸入密碼購(gòu)買(mǎi)時(shí)的密碼如果出現(xiàn)這個(gè)問(wèn)題的解決方案解決方法查看硬盤(pán)掛在情況如果有數(shù)據(jù)盤(pán)的情況下查看硬盤(pán)使用情況通過(guò)設(shè)置快捷登錄權(quán)限,可以增加幾個(gè)擁有權(quán)限的用戶(hù)下查 感謝 Scott 老師,Scott老師的慕課網(wǎng)教程 https://coding.imooc.com/clas... 1. 購(gòu)買(mǎi)阿里云服務(wù)器及域名 2. ...

    張春雷 評(píng)論0 收藏0
  • 通過(guò)apache的反向代理實(shí)現(xiàn)多用途服務(wù)器

    摘要:其他事項(xiàng)需要開(kāi)啟代理的拓展需要設(shè)置下位置在,下在下。經(jīng)過(guò)我的測(cè)試,對(duì)自身的其他端口的代理和對(duì)的代理是正常工作的。 遇到問(wèn)題 最近一直有個(gè)問(wèn)題困惑著我,apache、nodejs、tomcat不能同時(shí)在服務(wù)器80端口運(yùn)行,對(duì)域名進(jìn)行設(shè)置時(shí)使用ip:port又不能得到期望的結(jié)果(結(jié)果一直是以一個(gè)iframe的形式),因此就在segmentFault上發(fā)問(wèn):同一臺(tái)服務(wù)器運(yùn)行多個(gè)http服務(wù)如...

    cuieney 評(píng)論0 收藏0
  • nodejs之http-proxy幾點(diǎn)常見(jiàn)問(wèn)題

    摘要:部署到線上卻發(fā)現(xiàn),請(qǐng)求總是指向第一個(gè)二級(jí)域名,其他的二級(jí)域名訪問(wèn)不到。后端配置了后端,不僅僅配置了二級(jí)域名,還配置了二級(jí)目錄,前端部署的服務(wù)也一樣需要二級(jí)目錄。 http-proxy http-proxy是一個(gè)nodejs的http代理庫(kù),已經(jīng)被webpack-dev-server集成進(jìn)來(lái),做代理使用。原因是在前后端分離大行其道的今天,我們?nèi)绻枰诒镜卣{(diào)后端api接口,不配置host...

    gitmilk 評(píng)論0 收藏0
  • 前端常見(jiàn)跨域解決方案(全)

    摘要:需注意的是由于同源策略的限制,所讀取的為跨域請(qǐng)求接口所在域的,而非當(dāng)前頁(yè)。目前,所有瀏覽器都支持該功能需要使用對(duì)象來(lái)支持,也已經(jīng)成為主流的跨域解決方案。反向代理接口跨域跨域原理同源策略是瀏覽器的安全策略,不是協(xié)議的一部分。 什么是跨域? 跨域是指一個(gè)域下的文檔或腳本試圖去請(qǐng)求另一個(gè)域下的資源,這里跨域是廣義的。 廣義的跨域: 1.) 資源跳轉(zhuǎn): A鏈接、重定向、表單提交 2.) 資源...

    canger 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<