色黄视频网站-色接久久-色精品一区二区三区-色九-国内毛片-国内剧情麻豆

深圳搬家搬廠網站建設公司
當前位置:網站首頁 > 新聞動態 > 什么是代理和反向代理?(手把手教你做一個簡單的代理服務器) 返回列表

什么是代理和反向代理?(手把手教你做一個簡單的代理服務器)

發布時間:2023-12-05來源:網站建設公司

簡介

愛因斯坦說過:所有的偉大,都產生于簡單的細節中。netty為我們提供了如此強大的eventloop、channel通過對這些簡單東西的有效利用,可以得到非常強大的應用程序,比如今天要講的代理。

代理和反向代理

相信只要是程序員應該都聽過nginx服務器了,這個超級優秀nginx一個很重要的功能就是做反向代理。那么有小伙伴要問了,有反向代理肯定就有正向代理,那么他們兩個有什么區別呢?

先講一下正向代理,舉個例子,最近流量明星備受打擊,雖然被打壓,但是明星就是明星,一般人是見不到的,如果有人需要跟明星對話的話,需要首先經過明星的經紀人,有經紀人將話轉達給明星。這個經紀人就是正向代理。我們通過正向代理來訪問要訪問的對象。

那么什么是反向代理呢?比如現在出現了很多人工智能,假如我們跟智能機器人A對話,然后A把我們之間的對話轉給了后面的藏著的人,這個人用他的智慧,回答了我們的對話,交由智能機器人A輸出,最終實現了人工智能。這個過程就叫做反向代理。

netty實現代理的原理

那么在netty中怎么實現這個代理服務器呢?

首選我們首先代理服務器是一個服務器,所以我們需要在netty中使用ServerBootstrap創建一個服務器:

EventLoopGroup bossGroup = newNioEventLoopGroup(1); EventLoopGroup workerGroup = newNioEventLoopGroup(); try{ ServerBootstrap b = newServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class).handler(newLoggingHandler(LogLevel.INFO)) .childHandler(newSimpleDumpProxyInitializer(REMOTE_HOST, REMOTE_PORT)) .childOption(ChannelOption.AUTO_READ, false) .bind(LOCAL_PORT).sync().channel().closeFuture().sync();

在這個local服務器中,我們傳入ProxyInitializer。在這個handler初始化器中,我們傳入自定義的handler:

publicvoidinitChannel(SocketChannel ch){ ch.pipeline().addLast( newLoggingHandler(LogLevel.INFO), newSimpleDumpProxyInboundHandler(remoteHost, remotePort)); }

在自定義的handler中,我們使用Bootstrap創建一個client,用來連接遠程要代理的服務器,我們將這個client端的創建放在channelActive方法中:

// 開啟outbound連接Bootstrap b = newBootstrap(); b.group(inboundChannel.eventLoop()) .channel(ctx.channel().getClass()) .handler(newSimpleDumpProxyOutboundHandler(inboundChannel)) .option(ChannelOption.AUTO_READ, false); ChannelFuture f = b.connect(remoteHost, remotePort);

然后在client建立好連接之后,就可以從inboundChannel中讀取數據了:

outboundChannel = f.channel(); f.addListener(future-> { if(future.isSuccess()) { // 連接建立完畢,讀取inbound數據inboundChannel.read(); } else{ // 關閉inbound channelinboundChannel.close(); } });

因為是代理服務,所以需要將inboundChannel讀取的數據,轉發給outboundChannel,所以在channelRead中我們需要這樣寫:

publicvoidchannelRead(finalChannelHandlerContext ctx, Object msg){ // 將inboundChannel中的消息讀取,并寫入到outboundChannelif(outboundChannel.isActive()) { outboundChannel.writeAndFlush(msg).addListener((ChannelFutureListener) future-> { if(future.isSuccess()) { // flush成功,讀取下一個消息ctx.channel().read(); } else{ future.channel().close(); } }); } }

當outboundChannel寫成功之后,再繼續inboundChannel的讀取工作。

同樣對于client的outboundChannel來說,也有一個handler,在這個handler中,我們需要將outboundChannel讀取到的數據反寫會inboundChannel中:

publicvoidchannelRead(finalChannelHandlerContext ctx, Object msg){ // 將outboundChannel中的消息讀取,并寫入到inboundChannel中inboundChannel.writeAndFlush(msg).addListener((ChannelFutureListener) future-> { if(future.isSuccess()) { ctx.channel().read(); } else{ future.channel().close(); } }); }

當inboundChannel寫成功之后,再繼續outboundChannel的讀取工作。

如此一個簡單的代理服務器就完成了。

實戰

如果我們將本地的8000端口,代理到www.163.com的80端口,會發生什么情況呢?運行我們的程序,訪問http://localhost:8000, 我們會看到下面的頁面:

什么是代理和反向代理?(手把手教你做一個簡單的代理服務器)

為什么沒有如我們想象的那樣展示正常的頁面呢?那是因為我們代理過去之后的域名是localhost,而不是正常的www.163.com, 所以服務器端不認識我們的請求,從而報錯。

總結

本文的代理服務器之間簡單的轉發請求,并不能夠處理上述的場景,那么該怎么解決上面的問題呢? 敬請期待我的后續文章!

閱讀過此文章的讀者,還閱讀過下面的文章

  • 深圳網站制作好后來年到期了該怎么辦
    <p> 深圳網站制作好后來年到期了該怎么辦,不管是個人還是公司,要想制作好一個網站真的不容易,不僅僅需要做網站前期的規劃和策劃工作,還需要對網站建設的欄目,內容進行填充和建設,面對這一堆的要求和東西,整體還是比較麻煩和費事的,所以,網站建設制作好之后,一定要注意來年的續費問題,好多公司不注意這個問題,造成了網站后期打不開了,不能正常方面了,出現了問題才想起來網站沒有續費,接下來我們來看看深圳網絡公司是如何建議的。 </p> <p> 1.域名到期的影響<br /> &nbsp;一般情況下,網站域名需要一年進行一次續費,也可以一次購買多年,如果域名到期沒有及時續費,網站就會打不開,域名續費期一般是一個月,過了這個時間就會進入贖回期,這時候就不能續費了。<br /> &nbsp;2.服務器到期的影響<br /> &nbsp;服務器到期與域名一樣,到期后網站同樣不能打開,如果之前網站在做推廣,會直接影響展現效果,長時間不續費的話,網站數據就會全部刪除了,之前的努力就全白做了。<br /> &nbsp;3.網站維護服務到期<br /> &nbsp;有些網絡公司服務商會有網站維護費用,一般都是一年為一個期限,如果到期后您沒有及時維護,網站出現問題后就不會有人給您維護,就會造成影響。影響最大的就是網站展現的效果。<br /> </p>
  • 深圳做網站公司做網站時要明白這些
    <p> 深圳做網站公司做網站時要明白這些。其實做網站有的時候不僅僅是在做網站,更多的是在幫助其他公司在做網絡宣傳門戶,站在這個角度上你就知道你所承擔的責任了,作為現在公司網站建設不僅要符合時代潮流,更多的需要緊扣時代網頁設計特色和要求,只有這樣制作設計出來的網站才能更好的滿足現在人們的使用要求和觀念的,不管是在網站設計理念,網站布局規劃,以及網站內容建設等等,這些方面都需要進口時代主題和要求的,接下來我們來看看深圳網站制作公司是如何做的,需要做好那些方面的要求和規范呢? </p> <p> 審美在變,網站設計要緊跟潮流<br /> 也許用戶訪問時,不會逐一閱讀網站內容,但首先映入眼簾的一定是設計。也許網站在幾年前設計制作的確實很漂亮,但是我們無法否認的事實是,用戶對網站設計的審美一直在不斷改變。這個比較容易對比,隨便找一個行業,然后通過百度搜索到十家網站,分別對應年份和網站的網址,讓一個不知情的人去逐一打開并評判感受。大體趨勢是越是新近設計制作的網站,越容易贏得用戶的接受承認。其實這就是用戶的真實感受,每年快速改版重做對于很多公司來說有些壓力,但是筆者認為一般而言網站2-3年是需要重新設計制作快速的。一個通過網站尋找供應商的用戶,其瀏覽網站一般也就幾十秒到幾分鐘時間,先進的網站設計效果是吸引其深入了解進而咨詢的較好方法。<br /> 技術在變,網站制作要貼合需求<br /> 周圍的一切都在發生著巨變,網站技術也是如此,此前被很多網站公司采用的ASP網站開發語言幾乎已經沒人使用,相對于傳統的PC端網站,現在更多看重的是移動端,公司設計制作的網站現在多為自適應PC端、PAD端以及手持移動終端的響應式網站。誰也不知道網站技術會走向哪個方向,但是對于普通的企業而言,我們可以把握趨勢,至少每隔兩三年對網站重新快速設計制作。<br /> 企業在變,網站建設要適應發展<br /> 網站總是為企業服務的,換句話說就是網站的設計制作需要跟上企業的發展步伐。現在急劇變化的市場面前,如果想立于不敗之地,企業的經營策略一定在不斷調整優化。作為給企業發展提供服務的網站,其理應不斷調整不斷優化以適應公司需求。現在是互聯網時代,用戶了解公司更多的也是通過網絡,網站不僅是營銷的工具,更是企業品牌形象的展示窗口。由于人力成本的不斷升高,而網站設計更多的需要技術人員手工完成,所以真正定制開發的網站都價格不菲。但是同樣是網站建設公司網站改版也不一定就選擇定制,如果有合適的模板網站,也是不做的選擇。我們需要的是一個緊跟時代和用戶需求的網站,而非一定采用哪種方式實現它。 </p>
  • 英文網站制作需要注意那些問題和事項
    英文網站制作需要注意那些問題和事項。英文網站制作還是跟中文網站制作有比較大的區別的,應為中文網站面對的客戶群體是國內的用戶,而國內的用戶對網站的使用習慣,要求都是跟國外不一樣的,從而在制作英文網站的時候,一定要注意,像這種英文網站制作還是需要從國外人使用網站的習慣,使用網站的一些喜好出發,只有這樣制作出來的網站滿足國外人的使用的,這是一個方面,另外一個方面就是國外網站面對的搜索引擎,也是不一樣的,國外的搜索引擎跟國內有著比較大的區別的,搜索引擎也是制作英文網站必須要考慮的一個方面了,最后就是網站制作價格方面了,一般英文網站制作價格要比國內的網站制作價格高一些,這是一定的,畢竟國外網站制作的細節要求,以及針對搜索引擎優化方面還是有比較高的要求的,所以,這些都是工作量,也都是需要處理好這些方面的細節工作的。
  • 網站設計公司的發展趨勢詳解
    <p> 網站設計公司的發展趨勢詳解,目前網頁設計公司慢慢的轉型升級成為一種綜合性的設計公司了,不僅僅是在網站設計了,如果單純的依賴于網站設計,對于這樣的公司來說現在還是很被動的,并且目前的網站制作價格已經白熱化了,競爭也是很大的情況下,好多公司已經賺不到什么錢了,面對這樣的市場形式,作為網站設計公司要不斷的擴大和嘗試新的方式和方法,實現公司業務的升級和轉型,這也是擺在深圳<a href="http://www.szbc888.com" target="_blank"><strong>網站制作公司</strong></a>面對不可逾越的一個問題了,畢竟現在網站制作公司的活量不大,如果養一個專業的網頁設計技術團隊專門作網站,根本養活不了這樣的公司的發展了,更多的還需要通過其他的渠道,其他的平臺上獲得更為有質量的客戶,這也是當下網站制作公司不得不面對的一個話題了。 </p> <p> <img src="static/picture/20231030113846_47114.jpg" alt="" /> </p> <p> <a href="http://www.szbc888.com" target="_blank"><strong>網頁設計公司</strong></a>業務范圍擴大,于是著這個網站制作行業市場需求量在逐漸的縮小,并且凡是使用到網站的多半集中在一些公司,單位方面的需求了,對于一些個人對網站的需求還是很少的,除非一些專業化路線的個人才會這樣做的,網站設計公司的轉型升級,不僅提升的服務質量,更多的將服務方位不斷的擴大,從而得到更好的市場群體,能夠為更多的市場客戶服務。 </p>
  • 網站制作低價格策略已經成為網站制作行業的殺手锏
    <p> 網站制作低價格策略已經成為網站制作行業的殺手锏,整個大環境不好的情況下,好多公司在制作網站的時候,已經在想盡辦法降低網站制作的成本了,從當初的網站制作就直接去搜索引擎上搜索網站制作公司了,而如今制作網站已經發生變化了,從搜索引擎走向了淘寶,拼多多這些低價平臺了,并且這些平臺都是擔保交易了,好多的需要<a href="http://www.szbc888.com" target="_blank"><strong>制作公司網站</strong></a>的商家慢慢轉向這個方面來了,所以制作出來的網站不是模板的就是仿制的網站,價格的確很低,并且效率也是很高的,這也是聰明的用戶慢慢的轉型和變化了,如果這些模板網站放在搜索引擎來的客戶的話,這些網站制作下來的費用基本上在好幾千了,面對這樣的市場轉型和升級,這也讓好多網站制作公司尋找不同的出路了。 </p> <p> <img src="static/picture/20231030113212_16069.jpg" alt="" /> </p> <p> <a href="http://www.szbc888.com" target="_blank"><strong>深圳網站制作</strong></a>的價格的確沒有那么低,但是作為一些低價平臺上的用戶,他們為了爭取到客戶,低價引流,從而實現了低價格制作網站的形式,作為網站制作公司,你這樣低價格去做的目的就只有一個,那就是辛苦轉不到錢的,都是轉一些辛苦錢而已,面對這樣的市場形式和要求,作為網站制作公司一定要不斷的提升網站制作的附加值,提升<a href="http://www.szbc888.com" target="_blank"><strong>網站制作</strong></a>的質量,讓用戶以質量取勝,不能專門走低價格戰略,不然你的公司是發展不起來的,也作不大的,作為用戶而已,你公司小還可以這樣去做,如果公司發展到一定程度的去制作網站,這對于你的公司來說是滅頂之災了,所以選擇網站制作公司還是要從專業的角度出發去幫助客戶解決實際的問題,從而實現網站制作公司的價值和效益。 </p>
  • 深圳網站定制開發全流程詳解
    <p> 深圳網站定制開發全流程詳解,作為網站定制開發公司接下來給大家普及一下網站定制究竟要經過那些過程呢,前期的網站溝通肯定是少不了的,除此之外,網站備案這塊也是需要的,只要是正規的公司,正常的流程,網站備案也是需要做的,剩下的就是網站制作過程中的一些溝通了,接下來我們來看看<a href="http://www.szbc888.com" target="_blank"><strong>深圳網站制作</strong></a>公司的一個標準的流程。 </p> <p> 需求分析: 通過對客戶業務的了解和與客戶對流程的討論對需求進行基本建模,最終形成需求規格說明書<br /> 總體設計: 通過分析需求信息,對系統的外部條件及內部業務需求進行抽象建模,最終形成概要設計說明文檔<br /> 詳細設計: 此部分在對需求和概要設計的基礎上進行系統的詳細設計(也包含部分代碼說明)<br /> 開發編程: 對系統進行代碼編寫<br /> 測試分析與系統整合: 對所有功能模塊進行模擬數據測試及其它相關性測試并整合所有模塊功能<br /> 現場支持: 系統上線試運行進行現場問題記錄、解答<br /> 系統運行支持: 系統正式推產后,對系統進行必要的維護和BUG修改<br /> </p>

Copyright ? 2015 深圳市鑫惠廣網絡科技有限公司 粵ICP備2023111395號

主站蜘蛛池模板: 日本高清色片 | 国产成人在线观看网站 | 日韩在线看片 | 日本一区二区三区在线 观看网站 | 亚洲欧美色中文字幕 | 精品中文字幕久久久久久 | 色香蕉网站 | 3久女bbbwww| 亚洲欧美一区二区久久 | 久久精品成人国产午夜 | 香蕉免费一区二区三区在线观看 | 中文字幕一区视频 | 91香蕉福利一区二区三区 | 国产在线观看色 | 日本乱人伦在线观看免费 | 亚洲欧洲国产精品 | 国产欧美精品一区二区三区四区 | 精品视频一区二区三区在线观看 | 欧美成人禁片在线www | 4338×亚洲全国最大色成网站 | 韩国一级做a爰片性色毛片 韩国一区二区三区 | 美女黄在线观看 | 91婷婷| 婷婷黄色网 | 91久久香蕉青青草原娱乐 | 亚洲综合一区二区 | 久久亚洲网 | 国产精亚洲视频 | 亚洲第1页 | 视频国产一区 | 高清一区二区 | xxxxx国产| 伊色综合久久之综合久久 | 三级自拍 | 99热成人精品国产免国语的 | 精品亚洲综合在线第一区 | 国产中文一区 | 美女视频黄视频 | 午夜激情在线视频 | 中文字幕 亚洲精品 第1页 | 国产高清精品一级毛片 |