1.下載安裝:
http://how2j.cn/k/nginx/nginx-tutorial/1565.html
啓動: start nginx
關閉: nginx -s stop
重啓: nginx -s reload
2.設置端口爲9090
.......
server {
listen 80; #端口號
server_name localhost;
location / {
root html; #表示頁面都存放在nginx的html目錄下
index index.html index.htm; #歡迎頁面(root指定的目錄下)
}
.......
}.......
修改後的訪問地址: http://127.0.0.1:9090/
3.反向代理
比如要訪問youtube,但是不能直接訪問,只能先找個翻牆軟件,通過翻牆軟件才能訪問youtube. 翻牆軟件就叫做正向代理。所謂的反向代理,指的是用戶要訪問youtube,但是youtube悄悄地把這個請求交給bilibili來做,那麼bilibili就是反向代理了。在通過地址訪問nginx時,nginx把請求交給tomcat來做,即nginx的反向代理。http://how2j.cn/k/nginx/nginx-proxypass/1570.html
location / { #location / 表示處理所有請求
proxy_pass http://127.0.0.1:8111; #proxy_pass http://127.0.0.1:8111; 表示把請求都交給http://127.0.0.1:8111來處理
}
4.動靜分離
動靜分離就是指圖片,css, js之類的都交給nginx來處理,nginx處理不了的,比如jsp 就交給tomcat來處理。好處是nginx處理靜態內容的吞吐量很高,比tomcat高多了,這樣無形中提升了性能。http://how2j.cn/k/nginx/nginx-seperate/1567.html
#在locaction下面添加一個新的location:
location ~\.(css|js|png)$ {
root C:/Users/X7TI/Downloads/tomcat_8111/webapps/ROOT; # 表示所有的css js png訪問都由nginx來做
}
5,負載均衡
負載均衡的概念就是當訪問量很大的時候,一個 Tomcat 吃不消了,這時候就準備多個 Tomcat,由Nginx按照權重來對請求進行分配,從而緩解單獨一個Tomcat受到的壓力.http://how2j.cn/k/nginx/nginx-balance/1568.html
upstream tomcat_8111_8222{ # 增加一個upstream ,用來指向這兩個tomcat
server 127.0.0.1:8111 weight=1; #weight表示權重,值越大,被分配到的機率越大。
server 127.0.0.1:8222 weight=2;
}
server {
location / { #然後修改location,反向代理到上述配置。
proxy_pass http://tomcat_8111_8222;
}
......
}
6.ip_hash來解決負載均衡 session問題
通過ip地址標記用戶,如果多次請求都是從同一個ip來的,那麼就都分配到同一個tomcat
缺點:1. 大量請求來之某個局域網,那麼相當於就沒有負載均衡了 2. 如果tomcat_8111 掛了,那麼此時nginx只能把請求交給tomcat_8222,但是這裏卻沒有記錄session,用戶體驗依然受影響。
upstream tomcat_8111_8222{
server 127.0.0.1:8111 weight=1;
server 127.0.0.1:8222 weight=2;
ip_hash;#通過ip地址標記用戶,如果多次請求都是從同一個ip來的,那麼就都分配到同一個tomcat.
}
7.redis來解決負載均衡 session問題
http://how2j.cn/k/nginx/nginx-share-session/1569.html
通過負載均衡課程,我們可以把請求分發到不同的 Tomcat 來緩解服務器的壓力,但是這裏存在一個問題: 當同一個用戶第一次訪問tomcat_8111 並且登錄成功, 而第二次訪問卻被分配到了tomcat_8222, 這裏並沒有記錄他的登陸狀態,那麼就會呈現未登錄狀態了,嚴重傷害了用戶體驗。
Redis說簡單點就是個獨立的Hashmap,用來存放鍵值對的。
用Redis來存取session,這樣當tomcat1需要保存session值的時候,就可以把它放在Redis上,需要取的時候,也從Redis上取。
Redis session共享機制和nginx其實無關,是發生在nginx之後的事情,使用的是tomcat和redis之間的傳輸來完成的。
1.Tomcat-lib需要鏈接 redis, 一共有3個jar包:jedis-2.5.2.jar,commons-pool2-2.0.jar,tomcat-redis-session-manager1.2.jar。
2.修改tomcat/conf/context.xml ,增加下面這坨東西
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60" />