工具和中間件-nginx

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" />

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章