天天看點

nginx的安裝與常用功能

nginx

nginx介紹

nginx是一個輕量級,高性能的http和反向代理的web伺服器

在實際使用中常常和tomcat搭配使用

nginx安裝

nginx下載下傳頁,選擇對應的版本進行下載下傳

解壓到安裝目錄就可以直接使用了,需要注意的是,路徑不能有中文名,linux環境下需要還需要安裝gcc等環境

注意事項:nginx啟動會占用80端口,如果啟動異常,檢查80端口是否被占用,如果被占用可以在nginx解壓目錄下找到conf/nginx.conf檔案修改端口
server {
        listen       90; #啟動端口
        server_name  localhost;  location / {
        root   html;
        index  index.html index.htm;
    }
    location = /50x.html {
        root   html;
    }           

複制

nginx常用指令:

啟動指令:start nginx

關閉指令:nginx -s stop

重新開機指令:nginx -s reload

溫馨提示:每次修改配置檔案後記得重新啟動nginx哦

使用nginx實作本地反向代理

nginx.conf配置

#圖檔伺服器
	    server {
        listen       90;
        server_name  image.page.com;

        location / {
		#代理的路徑
            root  E:/page/images/;
        }
    }
	#背景商品管理伺服器
	server{
		listen 90;
		server_name manage.page.com;
		location / {
		#代理伺服器路徑
		proxy_pass http://localhost:8080;
		}
	}

}           

複制

由于沒有購買域名,dns伺服器無法解析

可以在此路徑下C:\Windows\System32\drivers\etc找到hosts檔案,在檔案末尾添加本地域名解析

在浏覽器位址欄輸入域名後,會先在這個檔案查找,沒有才通過dns伺服器解析域名

添加本地域名解析

127.0.0.1   image.page.com
127.0.0.1   manage.page.com
#需要解析的域名和對應的ip位址           

複制

nginx實作負載均衡

什麼是負載均衡

在項目部署時有多台伺服器,那麼這幾台伺服器該如何來配置設定呢?nginx可以配置設定使用者去通路不同的伺服器

配置nginx.conf配置檔案

#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
    #
        server localhost:8091;
        server localhost:8092;
        server localhost:8094;
    }
	#背景商品管理伺服器
	server{
		listen 90;
		server_name manage.page.com;
		
		location / {
		#代理伺服器路徑
		proxy_pass http://pageWindows;
		}
	}

}           

複制

通過以上配置nginx就會平均的配置設定使用者通路的是那個伺服器

nginx中的權重政策

輪詢政策:平均配置設定

權重政策:按照比例配置設定

IPHASH政策:根據ip來配置設定

輪詢政策

nginx預設配置為輪詢

#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
    #預設輪詢政策
        server localhost:8091;
        server localhost:8092;
        server localhost:8094;
    }           

複制

優點:每個伺服器都平均配置設定通路

缺點:性能不是很好的伺服器會承擔它這個價格不該承受的壓力

權重政策

能力越大責任越大,性能越好的伺服器應該允許更大的通路

關鍵字:weight

#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
    #配置權重政策
        server localhost:8091 weight = 6;
        server localhost:8092 weight = 3;
        server localhost:8094 weight = 1;
    }           

複制

IPHASH政策

基于客服端ip位址進行伺服器分發,同一個ip隻能通路且始終隻能通路那一台伺服器

缺點:如果一台伺服器出現故障不能通路,那麼他們對應的那一批使用者将無法通路,顯然這個缺點是緻命的,當然負載不均也是肯定的,不推薦使用

關鍵字:ip_hash

#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
    #IPHASH政策
    ip_hash
        server localhost:8091;
        server localhost:8092;
        server localhost:8094;
    }           

複制

nginx運維配置項

down屬性

當 nginx實作負載均衡時,背景伺服器出現故障,可以用down标記,nginx就不會對該伺服器進行配置設定

實作

#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
        server localhost:8091 down; #nginx不會對該伺服器配置設定通路任務
        server localhost:8092;
        server localhost:8094;
    }           

複制

backup屬性

backup 表示備用機 正常情況下該機器不參與使用者的通路,留作備用,當伺服器全部宏基或者主伺服器繁忙時啟用
#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
        server localhost:8091 down; #nginx不會對該伺服器配置設定通路任務
        server localhost:8092 down;
        server localhost:8094 backup;
    }           

複制

健康檢查/心跳檢測

健康檢查是為了在沒有程式員表示down屬性時,引起頻繁通路故障機的情況,當伺服器當機,隻需要影響使用者2秒之後,在指定的周期中不在通路故障機提升使用者體驗

常用屬性:

max_fails=1: 表示使用者發起請求時連結不到伺服器表示失敗.

fail_timeout=60s 如果伺服器通路失敗次數1次之後則在60秒内不會再通路故障機.

proxy_connect_timeout 2; #伺服器連結逾時時間

proxy_read_timeout 2; #讀取伺服器資源逾時時間

proxy_send_timeout 2; #向伺服器發送資源的逾時時間

配置

#tomcatwindows叢集
#配置需要通路的端口
    upstream pageWindows{
        server localhost:8091 max_fails=1 fail_timeout=60s; 
        server localhost:8092 ;
        server localhost:8094 ;
    }           

複制