Ⅰ IM (一):基本介紹
By 紫韻: 最近對 IM 系統產生了興趣,就看了些博客,現希望通過一個系列的文章對其稍作總結與記錄,如有不對,還望指正。
IM:Instant Messaging,即時通訊,是一個允許兩人或多人通過網路實時傳輸文字、語音、視頻等的終端服務,如現在常用的 QQ、微信、網路 Hi 等。IM 完全基於 TCP/IP 網路協議族實現,而 TCP/IP 協議族則是整個互聯網得以實現的技術基礎。
典型的 IM 通訊方式有如下四種:
P2P && 伺服器中轉
一般常用的 IM 通訊方式就是 P2P 和伺服器中轉這兩種,下面簡要對比分析這兩者的區別。
P2P:
P2P 多見於區域網內聊天工具,典型的應用有:飛鴿傳書、天網 Maze 等。這類軟體在啟動後一般做兩件事情:
進行 UDP 廣播:發送自己信息和接受同區域網內其他端信息;
開啟 TCP 監聽:等待其他端進行連接。
限制和不便:
只適合 ** 在線 ** 的 ** 點對點 ** 消息傳輸,對離線、群組等業務支持不夠;
由於 NAT 的存在,使得不同區域網內機器互聯難度大大上升,在某些網路類型(對稱 NAT)下無法建立連接。
** 伺服器中轉 **
幾乎所有互聯網 IM 產品都採用伺服器中轉這種方式進行消息傳輸,相比於 P2P 的方式,它的優劣如下:
** 典型的 IM 工作方式如下:**
客戶端登陸 IM 通訊中心(IM 通訊伺服器),獲取好友列表,獲取離線消息,將自身標志為在線狀態,與聊天對象建立聊天通道,進行文字、語音等通信。
一個典型的 IM 系統的選型過程大致包含如下幾個部分:
** IM 系統架構分層:**
一個典型的 IM 系統可能由如下及部分組成:
*** 功能點分析:***
*** 技術點分析:***
** 移動端 IM 客戶端難點 **
** 移動端架構設計的難點 **
Ⅱ 100高分贈送!反向代理技術(國外IP國內伺服器)
當需要對內部網路提供更進一步的保護時,仍然可以使用雙層防火牆模式,這樣兼具反向代理對Web伺服器的保護能力,和雙層防火牆對內部數據的更大的保護能力。
當組織向外提供信息發布的時候,並不僅僅要提供一些靜態的網頁,更大的可能是要根據實際的數據動態發布信息。因此發布的網頁便需要通過訪問資料庫動態生成,通常使用的動態生成技術有CGI或伺服器端文檔解析等方式生成的。然而無論那種方式,都需要使得Web伺服器能夠和資料庫伺服器進行連接、通信。然而系統資料庫應該是內部網路中應該首要保護的系統,因此要求安全性要求不高的對外發布信息的Web伺服器和內部資料庫伺服器放置在同一個網段,就會造成相應的安全問題。
為了提高訪問資料庫伺服器的安全性,就需要對能夠訪問資料庫的CGI程序進行限制,這就要求對啟動CGI的URL請求比對普通url進行更嚴格的限制。與普通包過濾型防火牆不同,反向代理能夠理解http協議,能區分出不同的url請求,從而能夠實現對cgi請求比普通http請求更嚴格的控制,甚至可以將cgi請求發送到一台專用的CGI伺服器進行處理,從而分別處理普通url請求和cgi請求。這台cgi伺服器可以具有訪問資料庫的能力,保證資料庫的安全。
總結本文中的論述,可以看出,反向代理方式是一種對外提供Web發布時使用的有效的防火牆技術,使用它和傳統防火牆技術相結合,就能實現簡單有效的防火牆系統。
你可以租用一台國外的可以轉發的虛擬主機,100M以內就可以的,然後將你域名的DNS指向那台虛擬主機,然後在那台虛擬主機上設置轉發到你真正的主機上,這樣應該可以的吧!
Ⅲ nginx 反向代理和後端伺服器獲取真實 ip
nginx 反向代理是什麼?
為了提高吞吐量,有些伺服器是專門跑程序用的,有些伺服器是跑靜態資源的。
你可能訪問一個網頁,裡面有圖片,而這個圖片並不是你訪問的這個網頁的伺服器,也叫前端伺服器,而是你的圖片請求被 Nginx 轉發到了一台後端伺服器,由後端伺服器提供給前端伺服器再返回到客戶端的。
我這台 nginx 的配置非常細致,有 nginx.conf ,在這個配置中包含了兩個文件夾,一個是 sites-available ,一個是 sites-enabled , nginx.cof 一般用來做整個 nginx 的配置。
域名配置段在 sites-avaliable 下,然後建立一個軟連接到 sites-enabled 下去。
反向代理就寫在域名配置段里,客戶端通過訪問伺服器,伺服器將請求分配按照 server 段里的則正匹配,將請求按照 fastcgi 發送到 php-fpm 通過分配再到我們的程序。
反向代理一樣,也需要通過正則來捕捉到用戶的請求。(2018-12-9,現在流行的做法是將靜態資源全部壓縮打包,丟到cdn上去,伺服器基本只做埠轉發,https配置,日誌,負載均衡,等很多很多功能)
server 段里多加以上這一條,前端的反向代理的工作就完成了。
(當然要開啟反向代理在 nginx.conf 里)以上捕捉到圖片格式結尾的就將這種請求轉發到伺服器地址,後端伺服器只要監聽這個埠將 root 指向資源目錄就行了。
當這一切做完後會發現,後端伺服器獲取到的並不是用戶的 ip 地址而是前端伺服器的 ip (通過 nginx 的訪問日誌),這是正常的。
因為本來就是前段請求的,但是可以通過 proxy_set_header 段將用戶的真實ip帶到後端伺服器去,而後端伺服器需要接收傳過來的這個參數。
日誌的格式默認情況下是不接收這種參數的,日誌格式在 nginx.conf 裡面定義,默認沒有定義,自己加上去就可以了。
這就是日誌的格式,可以自己添加和修改,上面主要描述的是定義一個格式這個格式的名字為main。
這個格式里包含了哪些東西順序是怎樣的,定義訪問成功的日誌的路徑,使用main格式來進行寫入。
改完後,前端伺服器 nginx -s reload ,後端伺服器 nginx -s reopen 。
反向代理就是這樣。有反向代理,當然也有正向代理了,也很簡單。
原文鏈接: nginx反向代理和後端伺服器獲取真實ip-伺服器
可以。
雲伺服器做反向代理時,可以同時訪問反向代理伺服器,而第三方代理伺服器分配的彈性IP地址,當VPC內部伺服器訪問時,彈性IP即可。
反向代理伺服器是在Web伺服器之前實現的,並將客戶端請求定向到特定的後端伺服器。