高性能的http服務代理服務器和反向代理服務器,能支持50000個並發連接數
正向代理
明確買家是誰,讓代理人去聯系目標
例如局域網內的客戶端想要訪問局域網外的internet,則需要代理服務器來訪問,這種代理就是正向代理
反向代理
客戶端不需要任何配置就可以訪問,只需要將請求發送到代理服務器,有代理服務器去選擇目標服務器在返回給客戶端
負載均衡
將請求分發到不同服務器、負載分發到不同服務器,就是負載均衡
訪問一個ip 默認是80 (nginx) tomcat 是8080
動靜分離
為了加快網站的解析速度、將動態和靜態頁面有不同服務器來解析,降低原來單個服務器的壓力
安裝
進入壓縮目錄執行./configure
執行make && make install (編譯安裝)
安裝完成后多一個local/nginx 在nginx有sbin 啟動腳本
./nginx
訪問:http://ip:80 ->welcome to nginx
查看開放的端口:firewall-cmd –list-all
添加端口:
Firewall-cmd –add-service=http -permanent
Sudo firewall-cmd –add-port=80/tcp –permanent
重啟防火牆:firewall-cmd -reload
Nginx 相關命令:
1 進入到nginx的目錄 /usr/local/nginx/sbin
2 查看nginx的版本號:./nginx -v
3 啟動nginx ./nginx
4 關閉nginx ./nginx -s stop
5 重加載 ./nginx -s reload (重新加載配置文件 nginx.conf)
Nginx的配置文件組成
第一塊:全局塊
從配置文件開始到events塊之間的內容、主要設置一些影響nginx服務器運行的配置指令,比如 worker_process 1; 值越大,可以支持的並發量也越多
第二部分:events
涉及的指令主要影響nginx服務器與用戶的網絡連接數
比如 worker connections 1024 支持的最大連接數
第三部分:http塊 (配置最多的地方)
http全局塊
server塊
舉例:
瀏覽器訪問www.123.com
Nginx.conf 配置如下圖:
proxy_pass 反向代理的地址
例如:要實現
http://127.0.0.1:9091/edu 訪問tomcatl1 (127.0.0.1:8080)
http://127.0.0.1:8080/vod 訪問tomcatl2 (127.0.0.1:8081)
注意:開放端口 9091 8081 8080 (firewall)
在 /usr/src/tomcat-xx/apache-tomcat-xx/webapps/ 創建 edu目錄 然后放一個a.html文件
這時訪問 http://$Ip:8081/edu/a.html 就能看到
這是nginx.conf 里要改的內容
~ /edu/ #正則表達式,請求路徑包含 edu時就會轉發到 xxx:8080
關於location的說明:
負載均衡:
訪問http://192.168.17.129/edu/a.html
Upstream myserver{
Server 192.168.17.129:8080;
Server 192.168.17.129:8081;
}
策略:
輪詢(默認)、權重、ip_hash、fair(第三方)
輪詢:服務器如果down掉,自動剔除
權重:weight 權重越高,分配的客戶端越多
Upstream myserver{
Server xxx weight=1;
Server xxx weight=10;
}
Ip_hash:每個訪客固定一個后端服務器、可以解決session問題
Upstream myserver{
Ip_hash;
Server xxx;
Server xxx;
}
Fair:按后端服務器響應時間來分配請求、響應時間斷的優先分配
Upstream myserverr{
Server xxxx;
Server xxxx;
Fair;
}
動靜分離:
Nginx處理靜態頁面、tomcat處理動態頁面:
一:把靜態文件獨立成單獨的域名放在獨立的服務器上
另一種就是動態和靜態文件混合一起發布,通過nginx來分開,通過location指定不同的后綴名實現不同的轉發請求、通過expires 參數設置可以使瀏覽器緩存過期時間,減少與服務器之間的請求和流量;設定一個過期時間,也就是無需去后端服務驗證,直接通過瀏覽器確認是否過期即可,不會殘生額外的流量
/data/image/01.jpg
/data/www/a.html
Autoinde on; // 列出返回目錄
最終測試:
http://192.168.17.129/image/01.jpg
http://192.168.17.129/www/a.html
高可用集群
需要兩台服務器 192.168.17.129 192.168.17.131 (nginx)
這兩台都要安裝nignx、keepalived
Yum -y install keepalived
安裝好之后 修改/etc/keepalived/keepalived.conf 文件
分別啟動nignx和keepalived
./nginx systemctl start keepalived.service
補充:
關閉nginx服務
1 kill `cat /usr/local/nginx/logs/nginx.pid` //文件中有個pid號
2 nginx -s reload //重載
Session共享:
無論登錄那一台ip,session是一致的
1 內存數據庫(memcache)
1 修改服務器和數據庫的關聯關系