軟件架構-nginx詳解上

今天說說nginx, 其實有老鐵比較奇怪,nginx不是運維來搞的嗎?確實是的,大部分狀況下,公司比較大的話,存在運維的話,這個鍋確定是運維來作的。可是如今有個趨勢叫devops以前我也說過,開發運維一體化,開發也要懂必定的運維知識。在一些互聯網的創業公司剛開始技術的工種,並非分的那麼清楚,可能都要會的。環境的搭建,運維,框架搭建,開發都必須拿得下來。
源碼:https://github.com/limingios/netFuture/tree/master/nginxcss

軟件架構-nginx詳解上

Nginx服務搭建與基礎演示(一)

Nginx

軟件架構-nginx詳解上

  • 介紹java

    Nginx是一個輕量級、高性能、穩定性高、併發性好的HTTP和反向代理服務器。也是因爲其的特性,其應用很是廣。linux

  • 歷史ios

    由俄羅斯的程序設計師Igor Sysoev所開發,最初供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。 其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好.目前中國大陸使用nginx網站用戶有:新浪、網易、 騰訊,另外知名的微網誌Plurk也使用nginx。nginx

  • 理解代理的概念c++

    1.正向代理:某些狀況下,代理咱們用戶去訪問服務器,須要用戶手動的設置代理服務器的ip和端口號。
    2.反向代理:是用來代理服務器的,代理咱們要訪問的目標服務器。代理服務器接受請求,而後將請求轉發給內部網絡的服務器(集羣化),並將從服務器上獲得的結果返回給客戶端,此時代理服務器對外就表現爲一個服務器。git

  • 根據源碼配置的機器

軟件架構-nginx詳解上

系統類型 IP地址 節點角色 CPU Memory Hostname
Centos7 192.168.66.110 nginx 1 2G nginx
Centos7 192.168.66.111 tomcat 1 2G tomcat1
Centos7 192.168.66.112 tomcat 1 2G tomcat2

軟件架構-nginx詳解上

  • 三臺機器

    準備工做github

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.41/pcre-8.41.tar.gz
tar zxvf pcre-8.41.tar.gz
cd image.png
./configure
make && make install
pcre-config --prefix

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

  • 安裝nginx
    cd ..
    wget http://nginx.org/download/nginx-1.13.10.tar.gz
    tar zxvf nginx-1.13.10.tar.gz
    mkdir  nginx
    cd nginx-1.13.10
    ./configure --prefix=/root/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.41
    make && make install 
    cd ~
    cd nginx/sbin/
    ./nginx -v
    ./nginx -t

軟件架構-nginx詳解上

軟件架構-nginx詳解上

  • 啓動nginx
    cd ~/nginx/sbin/
    ./nginx

    其實沒有權限

軟件架構-nginx詳解上

修改配置文件

vi ~/nginx/conf/nginx.conf
#修改爲user root
#wq保存
#從新加載nginx新的配置
./sbin/nginx -s reload

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

  • 111 和112 兩個機器安裝tomcat
    java -version
    wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

    軟件架構-nginx詳解上

軟件架構-nginx詳解上

tar zxvf apache-tomcat-8.5.37.tar.gz 
cd apache-tomcat-8.5.37
cd bin
./startup.sh
curl 127.0.0.1:8080

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

  • 111 和112 添加一個index.jsp文件方法查看
    cd /root/apache-tomcat-8.5.37/webapps/ROOT
    >index.jsp
    vi index.jsp
    cat index.jsp

    軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

軟件架構-nginx詳解上

###upstream 與location 模塊參數與案例講解(二)

將來軟件其實都是趨於模塊化的。拼裝完成。

upstream

軟件架構-nginx詳解上

軟件架構-nginx詳解上

  • upstream 參數
參數名稱 描述
service 反向服務地址 加端口
weight 權重
max_fails 失敗多少次 認爲主機已掛掉則,踢出,默認是1次,企業通常配置2到3次,可是電商更加劇視用戶體驗因此就是1次。前提這個機器供給比較多。
fail_timeout 踢出後從新探測時間
backup 備用服務
max_conns 容許最大鏈接數
slow_start 當節點恢復,不當即加入

修改66.110 那個nginx配置文件

vi /root/nginx/conf/nginx.conf
cat /root/nginx/conf/nginx.conf

軟件架構-nginx詳解上

軟件架構-nginx詳解上

由於權重相同,因此輪播111 和 112 2個tomcat

軟件架構-nginx詳解上
yu

*負載均衡算法
1.ll+weight

默認的負載算法,其實就是根據權重才分配服務請求。

2.ip_hash

基於Hash 計算 應用場景:保持session 一至性,第一次訪問那臺,一直是同一臺。hash(ip)%3 =index。弊端小區或者學校集中化的地方,他們出去的ip都是一致的,某個節點負載會很是很是的大。成爲熱點,有了ip_hash致使weight權重就失效了。

3.url_hash

(第三方)應用場景:靜態資源緩存,節約存儲,加快速度

4.least_conn

最少連接

5.least_time

最小的響應時間,計算節點平均響應時間,而後取響應最快的那個,分配更高權重。

6.keeplive

佔用鏈接數。內存消耗比較大,可是響應速度很快,應該保持這socket鏈接。

  • location
    1.root

    後面的配置至關於把瀏覽器中的輸入路徑進行了重指

2.index

在先後端分離的基礎上,指定網站初始頁

3.proxy_set_header

用來重定義發日後端服務器的請求頭

4.proxy_pass

若是在proxy_pass後面的url加/,表示絕對根路徑;若是沒有/,表示相對路徑,把匹配的路徑部分也給代理走

軟件架構-nginx詳解上

動靜分離方案

通常動靜分離兩種方式

  1. 靜態文件放入nginx
  2. 靜態文件放入指定的服務器,經過請求地址來區別跳轉到那個服務器。
  • 靜態文件放入nginx
    #思路:動、靜態的文件,請求時匹配不一樣的目錄當訪問gif,jpeg時 直接訪問e:wwwroot;

server {
listen 80;
server_name localhost;

location / {
root e:wwwroot;
index index.html;
}

全部靜態請求都由nginx處理,存放目錄爲html

location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root e:wwwroot;
}

全部動態請求都轉發給tomcat處理

location ~ .(jsp|do)$ {
proxy_pass http://test;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root e:wwwroot;
}
}

* 靜態服務器的方式
>多個upstream,多個location, location的名稱不同。

PS:最後來個通俗的說法,你就是大王,我是你的太監,upstream就是後宮,後宮能夠有多個,每一個後宮裏面已經分配好了按照胖瘦不一樣,後宮A所有都是120以上,後宮B所有都100如下,後宮裏面有不少愛妃,到晚上了大王有需求了,告訴太監,太監根據後宮的狀況,按照必定的算法,看看那個愛妃能夠進行侍寢,我這個太監就告訴大王,大王就直接去我經過算法的方式告訴他的愛妃哪裏。
相關文章
相關標籤/搜索