国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

這篇具有很好參考價(jià)值的文章主要介紹了Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

轉(zhuǎn)載自內(nèi)網(wǎng)穿透工具的文章:使用Nodejs搭建HTTP服務(wù),并實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程訪問(wèn)「內(nèi)網(wǎng)穿透」

前言

Node.js 是能夠在服務(wù)器端運(yùn)行 JavaScript 的開(kāi)放源代碼、跨平臺(tái)運(yùn)行環(huán)境。Node.js 由 OpenJS Foundation(原為 Node.js Foundation,已與 JS Foundation 合并)持有和維護(hù),亦為 Linux 基金會(huì)的項(xiàng)目。Node.js 采用 Google 開(kāi)發(fā)的 V8 運(yùn)行代碼,使用事件驅(qū)動(dòng)、非阻塞和異步輸入輸出模型等技術(shù)來(lái)提高性能,可優(yōu)化應(yīng)用程序的傳輸量和規(guī)模。這些技術(shù)通常用于資料密集的即時(shí)應(yīng)用程序。

Node.js 大部分基本模塊都用 JavaScript 語(yǔ)言編寫(xiě)。在 Node.js 出現(xiàn)之前,JavaScript 通常作為客戶端程序設(shè)計(jì)語(yǔ)言使用,以JavaScript 寫(xiě)出的程序常在用戶的瀏覽器上運(yùn)行。Node.js 的出現(xiàn)使 JavaScript 也能用于服務(wù)端編程。Node.js 含有一系列內(nèi)置模塊,使得程序可以脫離 Apache HTTP Server 或 IIS,作為獨(dú)立服務(wù)器運(yùn),下面將介紹如何簡(jiǎn)單幾步實(shí)現(xiàn)遠(yuǎn)程公共網(wǎng)絡(luò)下訪問(wèn)windwos node.js的服務(wù)端。

1.安裝Node.js環(huán)境

官網(wǎng)下載node.js,我們選擇64位一鍵安裝

https://nodejs.org/zh-cn/download/

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

安裝好后我們打開(kāi)cmd,輸入命令有正常出來(lái)版本號(hào),表示安裝成功,一鍵安裝版,默認(rèn)會(huì)配置環(huán)境變量。

node -v

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

2.創(chuàng)建node.js服務(wù)

這里我們?cè)诒镜貏?chuàng)建一個(gè)簡(jiǎn)單的nodejs服務(wù),創(chuàng)建一個(gè)貪吃蛇頁(yè)面小游戲來(lái)進(jìn)行演示。

首先在本地創(chuàng)建一個(gè)文件夾,并在文件夾中新建2個(gè)文件,一個(gè)是js文件和一個(gè)html文件,需要放在同個(gè)目錄下,然后使用vscode打開(kāi)。

  • game.html文件
  • nodetest.js文件

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

game.html添加如下html代碼并保存,以下代碼是一個(gè)html頁(yè)面小游戲(貪吃蛇)

<!DOCTYPE html>
<html>
<head>
	<title>貪吃蛇</title>
	<meta charset="UTF-8">
	<meta name="keywords" content="貪吃蛇">
	<meta name="Description" content="這是一個(gè)初學(xué)者用來(lái)學(xué)習(xí)的小游戲">
	<style type="text/css">
	*{margin:0;}
	.map{margin:100px auto;
		height:600px;
		width:900px;
		background:#00D0FF;
		border:10px solid #AFAEB2;
		border-radius:8px;
	}
	</style>
</head>
 
<body>
<div class="map">
<canvas id="canvas" height="600" width="900">
	
</canvas>
</div>
 
<script type="text/javascript">
 //獲取繪制工具
	/*
	var canvas = document.getElementById("canvas");
	var ctx = canvas.getContext("2d");//獲取上下文
	ctx.moveTo(0,0);
	ctx.lineTo(450,450);*/
	var c=document.getElementById("canvas");
    var ctx=c.getContext("2d");
    /*ctx.beginPath();
    ctx.moveTo(0,0);
    ctx.lineTo(450,450);
    ctx.stroke();
    */
 
    var snake =[];//定義一條蛇,畫(huà)蛇的身體
    var snakeCount = 6;//初始化蛇的長(zhǎng)度
	var foodx =0;
	var foody =0;
    var togo =0;
    function drawtable()//畫(huà)地圖的函數(shù)
    {
 
 
    	for(var i=0;i<60;i++)//畫(huà)豎線
    	{
    		ctx.strokeStyle="black";
    		ctx.beginPath();
    		ctx.moveTo(15*i,0);
    		ctx.lineTo(15*i,600);
    		ctx.closePath();
    		ctx.stroke();
    	}
        for(var j=0;j<40;j++)//畫(huà)橫線
    	{
    		ctx.strokeStyle="black";
    		ctx.beginPath();
    		ctx.moveTo(0,15*j);
    		ctx.lineTo(900,15*j);
    		ctx.closePath();
    		ctx.stroke();
    	}
    	
    	for(var k=0;k<snakeCount;k++)//畫(huà)蛇的身體
			{
			ctx.fillStyle="#000";
			if (k==snakeCount-1)
			{
				ctx.fillStyle="red";//蛇頭的顏色與身體區(qū)分開(kāi)
			}
			ctx.fillRect(snake[k].x,snake[k].y,15,15);//前兩個(gè)數(shù)是矩形的起始坐標(biāo),后兩個(gè)數(shù)是矩形的長(zhǎng)寬。
			
			}
			//繪制食物	
    		ctx.fillStyle ="black";
	     ctx.fillRect(foodx,foody,15,15);
	     ctx.fill();
    	
    }
 
    
    function start()//定義蛇的坐標(biāo)
    {
    	//var snake =[];//定義一條蛇,畫(huà)蛇的身體
        //var snakeCount = 6;//初始化蛇的長(zhǎng)度
		
		for(var k=0;k<snakeCount;k++)
    		{
    			snake[k]={x:k*15,y:0};
    			
            }
			
		  drawtable();
          addfood();//在start中調(diào)用添加食物函數(shù)
 
    }
 
    function addfood()
	{
	foodx = Math.floor(Math.random()*60)*15; //隨機(jī)產(chǎn)生一個(gè)0-1之間的數(shù)
	foody = Math.floor(Math.random()*40)*15;
		
		for (var k=0;k<snake;k++)
		{
			if (foodx==snake[k].x&&foody==sanke[k].y)//防止產(chǎn)生的隨機(jī)食物落在蛇身上
			{	
			addfood();
			}
		}
	
	
	}	
    		
   function move()
   {
	switch (togo)
	{
	case 1: snake.push({x:snake[snakeCount-1].x-15,y:snake[snakeCount-1].y}); break;//向左走
	case 2: snake.push({x:snake[snakeCount-1].x,y:snake[snakeCount-1].y-15}); break;
	case 3: snake.push({x:snake[snakeCount-1].x+15,y:snake[snakeCount-1].y}); break;
	case 4: snake.push({x:snake[snakeCount-1].x,y:snake[snakeCount-1].y+15}); break;
	case 5: snake.push({x:snake[snakeCount-1].x-15,y:snake[snakeCount-1].y-15}); break;
	case 6: snake.push({x:snake[snakeCount-1].x+15,y:snake[snakeCount-1].y+15}); break;
	default: snake.push({x:snake[snakeCount-1].x+15,y:snake[snakeCount-1].y});
	}
    snake.shift();//刪除數(shù)組第一個(gè)元素
   	ctx.clearRect(0,0,900,600);//清除畫(huà)布重新繪制
   	isEat();
	isDead();
	drawtable();
   } 			
   
   function keydown(e)
   {
   switch(e.keyCode)
		{
         case 37: togo=1; break;
		 case 38: togo=2; break;
		 case 39: togo=3; break;
		 case 40: togo=4; break;
		 case 65: togo=5; break;
		 case 68: togo=6; break;
		}
   }
   
   function isEat()//吃到食物后長(zhǎng)度加1
   {
    if(snake[snakeCount-1].x==foodx&&snake[snakeCount-1].y==foody)
   {
		addfood();
		snakeCount++;
		snake.unshift({x:-15,y:-15});
   }
   
   }
   //死亡函數(shù)
   function isDead()
   {
    if (snake[snakeCount-1].x>885||snake[snakeCount-1].y>585||snake[snakeCount-1].x<0||snake[snakeCount-1].y<0)
		{
        

		window.location.reload();
		}
   }
   
    document.onkeydown=function(e)
{
	keydown(e);
 
} 
window.onload = function()//調(diào)用函數(shù)
{ 
	start();
	setInterval(move,150);
	drawtable();
	
	
 
}
</script>
</body>
</html>

nodetest.js文件添加如下js代碼,以下代碼意思是開(kāi)啟一個(gè)http服務(wù),設(shè)置監(jiān)聽(tīng)3000端口號(hào)

const http = require('http');

//加載文件模塊
const fs = require("fs");


const hostname = '127.0.0.1';
//端口
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  
  fs.readFile('./game.html', (err, data) => {
    if (err) throw err;
    console.log(data.toString);
    res.end(data);
  });
  
  
 
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

3. 訪問(wèn)node.js 服務(wù)

當(dāng)我們編寫(xiě)好相關(guān)代碼后,我們開(kāi)始啟動(dòng)服務(wù).在vscode控制臺(tái)輸入命令【注意需要進(jìn)入到相應(yīng)的文件目錄下執(zhí)行命令】

node .\nodetest.js

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

有正常返回提示服務(wù)在本地3000端口下,我們打開(kāi)瀏覽器,訪問(wèn)http://127.0.0.1:3000/,出現(xiàn)貪吃蛇界面表示成功【游戲控制:鍵盤(pán)上下左右鍵】

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

4.內(nèi)網(wǎng)穿透

這里我們使用cpolar來(lái)進(jìn)行內(nèi)網(wǎng)穿透,支持http/https/tcp協(xié)議,不限制流量,無(wú)需公網(wǎng)IP,也不用設(shè)置路由器,使用簡(jiǎn)單。

4.1 安裝配置cpolar內(nèi)網(wǎng)穿透

cpolar官網(wǎng):https://www.cpolar.com/

訪問(wèn)cpolar官網(wǎng),注冊(cè)一個(gè)賬號(hào),然后下載并安裝客戶端,具體安裝教程可以參考官網(wǎng)文檔教程。

  • windows系統(tǒng):在官網(wǎng)下載安裝包后,雙擊安裝包一路默認(rèn)安裝即可。
  • linux系統(tǒng):支持一鍵自動(dòng)安裝腳本,詳細(xì)請(qǐng)參考官網(wǎng)文檔——入門(mén)指南

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

4.2 創(chuàng)建隧道映射本地端口

cpolar安裝成功后,在瀏覽器上訪問(wèn)本地9200端口http://localhost:9200,使用cpolar郵箱賬號(hào)登錄。

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——?jiǎng)?chuàng)建隧道,創(chuàng)建一個(gè)指向本地3000端口的http隧道

  • 隧道名稱:可自定義命名,注意不要與已有的隧道名稱重復(fù)
  • 協(xié)議:選擇http
  • 本地地址:3000
  • 域名類型:免費(fèi)選擇隨機(jī)域名
  • 地區(qū):選擇China vip

點(diǎn)擊創(chuàng)建

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

隧道創(chuàng)建成功后,點(diǎn)擊左側(cè)的狀態(tài)——在線隧道列表,查看所生成的公網(wǎng)地址,然后復(fù)制地址

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

打開(kāi)瀏覽器器,我們使用上面公網(wǎng)地址進(jìn)行訪問(wèn),至此,我們成功將本地·node.js 服務(wù)發(fā)布到了公網(wǎng)地址

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

5.固定公網(wǎng)地址

由于以上使用cpolar所創(chuàng)建的隧道使用的是隨機(jī)公網(wǎng)地址,24小時(shí)內(nèi)會(huì)隨機(jī)變化,不利于長(zhǎng)期遠(yuǎn)程訪問(wèn)。因此我們可以為其配置二級(jí)子域名,該地址為固定地址,不會(huì)隨機(jī)變化。

  • 保留一個(gè)二級(jí)子域名

登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,選擇保留二級(jí)子域名,設(shè)置一個(gè)二級(jí)子域名名稱,點(diǎn)擊保留,保留成功后復(fù)制保留的二級(jí)子域名名稱

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

保留成功后復(fù)制保留的二級(jí)子域名地址

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

  • 配置二級(jí)子域名

訪問(wèn)http://127.0.0.1:9200/,登錄cpolar web UI管理界面,點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——隧道列表,找到所要配置的3000隧道,點(diǎn)擊右側(cè)的編輯

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

修改隧道信息,將保留成功的二級(jí)子域名配置到隧道中

  • 域名類型:選擇二級(jí)子域名
  • Sub Domain:填寫(xiě)保留成功的二級(jí)子域名

點(diǎn)擊更新

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

更新完成后,打開(kāi)在線隧道列表,此時(shí)可以看到公網(wǎng)地址已經(jīng)發(fā)生變化,地址名稱也變成了保留過(guò)的二級(jí)子域名名稱,將其復(fù)制下來(lái)

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)

然后使用固定http地址打開(kāi)瀏覽器訪問(wèn)

Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)
訪問(wèn)成功,現(xiàn)在這個(gè)公網(wǎng)地址是固定的了,不會(huì)隨機(jī)變化。成功通過(guò)cpolar內(nèi)網(wǎng)穿透,實(shí)現(xiàn)在外遠(yuǎn)程訪問(wèn)nodejs服務(wù),無(wú)需公網(wǎng)IP ,也不用設(shè)置路由器。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-454233.html

到了這里,關(guān)于Nodejs快速搭建簡(jiǎn)單的HTTP服務(wù)器,并發(fā)布公網(wǎng)遠(yuǎn)程訪問(wèn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • nodejs-websocket之簡(jiǎn)單利用node搭建服務(wù)器

    一、 需要安裝 node.js 通過(guò)npm 安裝 webSocket包 npm install websocket 二、編寫(xiě)服務(wù)端 這段代碼是一個(gè)使用Node.js的websocket庫(kù)(nodejs-websocket)創(chuàng)建的服務(wù)器,監(jiān)聽(tīng)端口3000。以下是對(duì)代碼的簡(jiǎn)要解釋: 引入所需的websocket模塊: const ws = require(\\\'nodejs-websocket\\\') 設(shè)置服務(wù)器端口號(hào): const PORT =

    2024年02月07日
    瀏覽(30)
  • HFS 快速搭建 http 服務(wù)器

    HFS 快速搭建 http 服務(wù)器

    HFS 是一個(gè)輕量級(jí)的HTTP 服務(wù)工具,3.0版本前進(jìn)提供Windows平臺(tái)安裝包,3.0版本開(kāi)提供Linux和macOS平臺(tái)的安裝包。 HFS更適合在局域網(wǎng)環(huán)境中搭建文件共享服務(wù)或者安裝配置源服務(wù)器。 甲 非守護(hù)進(jìn)程的方式運(yùn)行 HFS (Ubuntu 22.04) 一 創(chuàng)建 HTTP 的根目錄 /home/budgie/mirrorsHTTP mkdir -vp /ho

    2024年04月12日
    瀏覽(22)
  • 從零開(kāi)始用Nodejs搭建一個(gè)MQTT服務(wù)器,并且用stm32通過(guò)esp8266進(jìn)行消息訂閱和發(fā)布

    從零開(kāi)始用Nodejs搭建一個(gè)MQTT服務(wù)器,并且用stm32通過(guò)esp8266進(jìn)行消息訂閱和發(fā)布

    最近在做一個(gè)物聯(lián)網(wǎng)項(xiàng)目,需要用到服務(wù)器進(jìn)行數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)的請(qǐng)求和發(fā)送,之前我用過(guò)onenet平臺(tái)上的http服務(wù),雖然能通過(guò)get和post請(qǐng)求進(jìn)行數(shù)據(jù)的提交和發(fā)送,但是平臺(tái)上的數(shù)據(jù)發(fā)生改變卻不能主動(dòng)推送給esp8266,與我此次的項(xiàng)目不符合,所以pass。然后我了解了下mqtt協(xié)

    2024年02月04日
    瀏覽(32)
  • 樹(shù)莓派本地快速搭建web服務(wù)器,并發(fā)布公網(wǎng)訪問(wèn)

    樹(shù)莓派本地快速搭建web服務(wù)器,并發(fā)布公網(wǎng)訪問(wèn)

    隨著科技的發(fā)展,電子工業(yè)也在不斷進(jìn)步,我們身邊的電子設(shè)備也在朝著小型化和多功能化演進(jìn),以往體積龐大的電腦也在逐漸縮小體積。樹(shù)莓派作為一臺(tái)功能完備的硬件設(shè)備,其功耗和體積遠(yuǎn)小于傳統(tǒng)的臺(tái)式電腦,并且在大部分功能上并不遜于臺(tái)式機(jī),因此被開(kāi)發(fā)出多種應(yīng)

    2024年02月15日
    瀏覽(37)
  • 如何用Python 快速搭建HTTP服務(wù)器

    如何用Python 快速搭建HTTP服務(wù)器

    Python具有語(yǔ)法簡(jiǎn)單、語(yǔ)句清晰的特點(diǎn),而且Python的兼容性比較好,可以將其他語(yǔ)言制作的模塊聯(lián)結(jié)起來(lái),具有強(qiáng)大且豐富的庫(kù),封裝后可以輕松調(diào)用, 因此成為編程語(yǔ)言中的“網(wǎng)紅“,甚至被稱為 非計(jì)算機(jī)從業(yè)者的第一語(yǔ)言。 Python 在 IT 就業(yè)市場(chǎng)也是 最受歡迎、最熱門(mén)的技術(shù)技能

    2023年04月08日
    瀏覽(27)
  • 超簡(jiǎn)單--搭建http、https代理服務(wù)器

    vim /etc/squid/squid.conf systemctl start squid systemctl status squid systemctl enable squid 日志位置 /var/log/squid 服務(wù)器搭建完成 linux主機(jī)配置 //編輯配置文件 vi /etc/profile //在該配置文件的最后添加代理配置 // 退出profile文件并保存 source /etc/profile // 使配置文件生效 普通PC電腦 直接在瀏覽器或網(wǎng)

    2024年02月08日
    瀏覽(19)
  • 無(wú)云服務(wù)器,Linux本地快速搭建web網(wǎng)站,并內(nèi)網(wǎng)穿透發(fā)布上線

    無(wú)云服務(wù)器,Linux本地快速搭建web網(wǎng)站,并內(nèi)網(wǎng)穿透發(fā)布上線

    轉(zhuǎn)載自cpolar文章:Linux CentOS本地搭建Web站點(diǎn),并實(shí)現(xiàn)公網(wǎng)訪問(wèn) 在web項(xiàng)目中,部署的web站點(diǎn)需要被外部訪問(wèn),則需要一個(gè)媒介,通過(guò)把資源放在這個(gè)媒介中,再通過(guò)所暴露的端口指向這個(gè)站點(diǎn),當(dāng)外部訪問(wèn)這個(gè)媒介所對(duì)應(yīng)的端口時(shí),媒介指向站點(diǎn),完成訪問(wèn),像這種類似的媒介,常用的有

    2024年02月02日
    瀏覽(41)
  • 什么?Python一行命令快速搭建HTTP服務(wù)器并公網(wǎng)訪問(wèn)?

    什么?Python一行命令快速搭建HTTP服務(wù)器并公網(wǎng)訪問(wèn)?

    轉(zhuǎn)載自遠(yuǎn)程內(nèi)網(wǎng)穿透的文章:【Python】快速簡(jiǎn)單搭建HTTP服務(wù)器并公網(wǎng)訪問(wèn)「cpolar內(nèi)網(wǎng)穿透」 Python作為熱度比較高的編程語(yǔ)言,其語(yǔ)法簡(jiǎn)單且語(yǔ)句清晰,而且python有良好的兼容性,可以輕松的和其他編程語(yǔ)言((比如C/C++))建立的模塊連接起來(lái),而且python豐富強(qiáng)大的庫(kù),經(jīng)過(guò)封

    2024年02月01日
    瀏覽(30)
  • 無(wú)云服務(wù)器,Linux本地快速搭建web網(wǎng)站,并內(nèi)網(wǎng)穿透發(fā)布上線(1)

    無(wú)云服務(wù)器,Linux本地快速搭建web網(wǎng)站,并內(nèi)網(wǎng)穿透發(fā)布上線(1)

    轉(zhuǎn)載自cpolar文章:Linux CentOS本地搭建Web站點(diǎn),并實(shí)現(xiàn)公網(wǎng)訪問(wèn) 在web項(xiàng)目中,部署的web站點(diǎn)需要被外部訪問(wèn),則需要一個(gè)媒介,通過(guò)把資源放在這個(gè)媒介中,再通過(guò)所暴露的端口指向這個(gè)站點(diǎn),當(dāng)外部訪問(wèn)這個(gè)媒介所對(duì)應(yīng)的端口時(shí),媒介指向站點(diǎn),完成訪問(wèn),像這種類似的媒介,常用的有

    2024年02月03日
    瀏覽(29)
  • WEB通訊技術(shù)。前端實(shí)現(xiàn)SSE長(zhǎng)連接,nodejs+express搭建簡(jiǎn)單服務(wù)器,進(jìn)行接口調(diào)試,通過(guò)curl請(qǐng)求數(shù)據(jù)

    WEB通訊技術(shù)。前端實(shí)現(xiàn)SSE長(zhǎng)連接,nodejs+express搭建簡(jiǎn)單服務(wù)器,進(jìn)行接口調(diào)試,通過(guò)curl請(qǐng)求數(shù)據(jù)

    長(zhǎng)連接(Keep-Alive)是一種HTTP/1.1的持久連接技術(shù),它允許客戶端和服務(wù)器在一次TCP連接上進(jìn)行多個(gè)HTTP請(qǐng)求和響應(yīng),而不必為每個(gè)請(qǐng)求/響應(yīng)建立和斷開(kāi)一個(gè)新的連接。長(zhǎng)連接有助于減少服務(wù)器的負(fù)載和提高性能。 長(zhǎng)連接的HTTP請(qǐng)求方法與普通HTTP請(qǐng)求方法相同,可以使用GET、P

    2024年02月09日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包