** 反向代理伺服器_Nginx [web基礎day26] *
阿新 • • 發佈:2019-01-02
Nginx
阿里雲伺服器
1.ip地址 * 電腦的ip地址連線不同的網路ip地址是不斷變化的 * 阿里雲伺服器給的公網ip地址是不變的。 * 阿里雲中使用的是公網ip地址,內的ip地址是區域網的地址。 * 公網的ip地址不容易記住,可以指定一個域名繫結ip。 2.遠端工具 * Xshell6 可以遠端控制伺服器 * FileZila 可以遠端傳輸到伺服器軟體 3.其他操作 * 虛擬機器作業系統:CentOs * 購買域名 繫結域名 通過域名連線伺服器 * 釋出的過程中會有很多問題,如 * tomcat安全問題(需要刪除重新放入檔案) * redies需要安裝 * 版本不相容 * 等
代理伺服器
* 檢視伺服器:
* 首先輸入網址後,會先在hosts中查詢是否有對應的ip地址,如果有的話直接返回,如果沒有,再從公網上進行查詢解析。
* hosts路徑:C:/Windows/System32/drivers/etc/hosts
* 系統許可權不足的同學,可以使用此程式碼解決hosts修改不生效的問題:
* ipconfig /flushdns
* 網站(域名)--> 找到對應ip地址對應的web伺服器 -->找到web伺服器的資源。
* .com .cn 頂級域名 這種域名比較貴
* 解析設計: 主機記錄與記錄值進行匹配
Nginx
1.概述 * Nginx,它是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。是由俄羅斯訪問量第二的Rambler.ru站點開發的,釋出於2004年10月4日。 2.優點: * 穩定 * 功能集豐富 * 示例配置檔案 * 低系統資源的消耗 3.代理問題 * 正向代理: * 如果想上網,可以通過一個代理伺服器連上網路,這樣就會經過一個代理伺服器,這種就屬於正向代理。 (機器找網路) * 反向代理 * 網路上有一個請求過來,但是現在有很多伺服器,它不知道找哪個伺服器。這時候就有一個代理伺服器,它會攔截請求並分析,告訴請求找哪個伺服器,這就稱之為反向代理。 (網路找機器) * 使用反向代理軟體可以解決伺服器叢集問題。 4.windows中部署Nginx和tomcat叢集: 1. 安裝步驟: * 複製出兩個tomcat出來,分別命名為tomcat1和tomcat2 * 修改tomcat埠,修改其中一個tomcat的Servlet.xml檔案(防止埠衝突): * Server port " xxx" * Connnector prot(啟動埠)=" xxx" Protocol="HTTP" * Connector prot " xxx" Protocol="AJP/" * 將兩個一樣的專案分別都發布到兩個tomcat的專案中 (將專案打包為war包分別放入兩個tomcat中的webapps裡) 2. Nginx: * 它們不可能有兩個不同的地址,所以需要安裝一個Nginx,設定一個統一的入口。 * 步驟: 1.雙擊nginux.exe 如果想看一下是否成功執行和結束,可以點開工作管理員即可檢視。 2.nginux的埠是80,預設省略,直接輸入localhost即可進入Nginx的歡迎介面(http://locathost) 3. 配置Nginx: 1. 進入Nginx檔案中,修改nginx/conf/nginx.conf檔案: * 建立一個集合: //設定伺服器列表 * upstream server_lb{ * server localhost:8080; * server localhost:8081; * } *在server中新增程式碼: * server{ //如果有域名直接設定域名,如果沒有可以直接設定proxy pass即可 * listen 80; * server_name localhost; * location / { * root html; * proxy pss http://server lb; //代理 * index index.jsp index.html index.htm; * } } 2.做到這一步,就可以使tomcat的叢集搭建完成了。 4. Session的共享問題 * 解決方案: 1. 一種解決辦法:一個使用者進來以後只在tomcat1上進行操作,另一個使用者進行只在tomcat2上進行; * 修改nginx/conf/nginx.conf檔案,在upstream server_lb{}中末尾新增程式碼:ip_hash; * 設定權重 如: * server localhost:8080 wight=4; * server localhost:8081 wight=10; * //這個修改也是在server_lb中修改程式碼。 2. 廣播機制: * 概念:一種使用tomcat廣播機制完成session的共享(不推薦的方式) * 缺點:當叢集中tomcat很多的時候,它們之間需要相互聯絡,需要知道彼此的關係和位置,會導致效率下降。 * 配置:看下方尾部。 3. redis快取機制(工作中常用): * 概念:可以使用redis進行快取,將它們中的共享資料都儲存到redis伺服器中。取的時候都從redis取出資料。 4. 使用1方法可以讓不同的tomcat來分擔伺服器的壓力,請求負載過程中會話資訊不能丟失,那麼需要在多個tomcat中session需要共享。 * 配置tomcat的session共享可以有三種解決方案: 1. 第一種是以負載均衡伺服器本身的session共享策略,沒中伺服器的配置是不一樣的並且nginx本身是沒有的。 2. 第二種是利用web容器本身的session共享策略來配置共享。針對於weblogic這種方式還是靠譜的。但是針對於tomcat這種方式存在很大的缺陷,主要因為是依靠廣播方式來實現的session賦值,會浪費很多頻寬導致整個網路反應緩慢。官網也建議這種方式最好不要超過4臺tomcat,具體的內容可參考/webapps/docs/cluster-howto.html裡面有詳細的說明。 3. 第三種是tomcat叢集+redis的Session共享配置方法。 5. 廣播機制的seesion共享搭建方法: 1. 步驟一:修改server.xml檔案,最簡單的叢集配置只需要將節點中註釋掉的下面這句取消註釋即可: * XML程式碼: * <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 2. 步驟二:修改專案的web.xml檔案: * web.xml檔案的修改很簡單:只需要在節點中新增這個節點<distributable/>就可以了。 OK,有了這二步就實現了Tomcat的叢集和Session的共享了。
安全網站:
* www.freebuf.com 技術,科普性內容
* www.exploit-db.com 英文