天天看點

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

(windows反向代理+負載均衡+理論知識)**Nginx反向代理伺服器設定

1.下載下傳并解壓

下載下傳位址:http://nginx.org/en/download.html

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

下載下傳的壓縮包nginx-1.16.0放到D盤,右鍵選擇解壓到目前檔案夾。

2.修改conf配置檔案

打開D:\nginx-1.16.0\conf目錄下的nginx.conf檔案,按下圖進行配置(如果你不知道自己伺服器的IP和端口号,請打開Internet Information Services (IIS)管理器oraclelis網站裡)

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定
(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定
(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定
#user  nobody;    #運作使用者
worker_processes  1;    #啟動程序,通常設定成和cpu的數量相等


#全局錯誤日志
error_log  D:/nginx/logs/error.log;   #存放日志檔案的路徑,一般放在安裝nginx目錄下的logs裡
error_log  D:/nginx/logs/notice.log  notice;
error_log  D:/nginx/logs/info.log  info;


#PID檔案,記錄目前啟動的nginx的程序ID
pid        D:/nginx/logs/nginx.pid;

#工作模式及連接配接數上限
events {
    worker_connections  1024;   #單個背景worker process程序的最大并發連結數
}


#設定http伺服器
http {
    include       mime.types;	#設定mime類型,類型由mime.type檔案定義
    default_type  application/octet-stream;
	
	#設定日志
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;
	rewrite_log     on;
	
    #sendfile        on;   #指令指定 nginx 是否調用 sendfile 函數(zero copy)來輸出檔案,對于普通應用,
	 #必須設為 on,如果用來進行下載下傳等應用磁盤IO重負載應用,可設定為 off,以平衡磁盤與網絡I/O處理速度,降低系統的uptime.
    #tcp_nopush     on;


    #連接配接逾時時間
    keepalive_timeout  120;  #連接配接逾時時間
	tcp_nodelay        on;
	
	#gzip壓縮開關
    #gzip  on;
	
	 #設定實際的伺服器清單 
    upstream lis_server{
        server 伺服器IP:端口号;
    }
	
	#HTTP伺服器
	server {
	    listen 80;    #偵聽80端口
	    server_name www.oraclelis.com;    # 這是外網通路進來時的連接配接位址
		
		#首頁
        index index.html
		
		
		#編碼格式
        charset utf-8;
		
		#代理配置參數
	    proxy_connect_timeout 180;
        proxy_send_timeout 180;
        proxy_read_timeout 180;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarder-For $remote_addr;
		
		#反向代理的路徑(和upstream綁定),location 後面設定映射的路徑
        location / {
            proxy_pass http://lis_server;
        }
		
	   # 靜态檔案,nginx自己處理
       # location ~ ^/(images|javascript|js|css|flash|media|static)/ {
       #     root D:\nginx-1.16.0\exp_location;
       #     #過期30天,靜态檔案不怎麼更新,過期可以設大一點,如果頻繁更新,則可以設定得小一點。
       #     expires 30d;
       # }
		
		#設定檢視Nginx狀态的位址
        location /NginxStatus {
            stub_status           on;
            access_log            on;
            auth_basic            "NginxStatus";
            auth_basic_user_file  conf/htpasswd;
        }
		
		#禁止通路 .htxxx 檔案
        location ~ /\.ht {
            deny all;
        }
	}
}
           

複制上面寫入到nginx.conf檔案裡并且看截圖的注意事項,解決後後儲存ctrl+S

3.修改hosts檔案

打開C:\Windows\System32\drivers\etc下的hosts

加入圖下的内容(在cmd裡輸入ipconfig找到“IPv4 位址”檢視右側的ip,即為本機電腦的ip):

目标伺服器的IP www.oraclelis.com

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

修改完儲存ctrl+S

4.配置環境變量用dos指令啟動nginx

在“我的電腦”上點選滑鼠右鍵選擇“屬性”》“進階系統設定”》環境變量==》在系統環境變量裡選擇Path加入

D:\nginx-1.16.0

然後點選确認;

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

再打開D:\nginx-1.16.0檔案夾按住shift+滑鼠右鍵選擇“在此次打開powershell視窗

輸入nginx -t,出現如下提示則沒問題

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

上述沒問題後再輸入:start nginx并且點選Enter鍵執行啟動nginx反向代理伺服器

5.驗證

在浏覽器裡輸入:www.oraclelis.com

在浏覽器顯示出頁面則成功了,如果顯示下圖的界面則失敗!

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

6.設定成系統程序開機自啟

下載下傳winsw-2.0.2-bin.exe :http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.0.2/

然後放在D:\nginx-1.16.0重命名為nginx-service.exe在該目錄下建立 nginx-service.xml 檔案,寫入配置資訊,配置好了之後就可以通過這個将Nginx注冊為Windows服務。

nginx-service.xml寫入:

nginx nginx nginx D:nginx-1.16.0\ roll D:nginx-1.16.0\nginx.exe D:nginx-1.16.0\nginx.exe -s stop

寫入儲存後,用系統管理者運作powershell視窗跳轉到nginx路徑下輸入DOS指令:

.\nginx-service.exe install 就成功将其注冊為Windows服務了,然後運作

.\nginx-service.exe start 啟動服務。這時我們可以在Windows任務管理器的服務中檢視該是否成功啟動。

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

7額外的指令

如果需要停用nginx則在D:\nginx-1.16.0檔案夾按住shift+滑鼠右鍵選擇“在此次打開powershell視窗“,輸入DOS指令。

nginx -s stop

注:

nginx-service.exe install 指令可注冊對應的系統服務

nginx-service.exe uninstall 指令可删除對應的系統服務

nginx-service.exe stop 指令可停止對應的系統服務

nginx-service.exe start 指令可啟動對應的系統服務

Nginx正向代理伺服器設定

1.配置

#正向代理
	server {
        listen       822;
		listen       443 ssl;
        server_name www.baidu.com baidu.com; #填寫綁定證書的域名
        #ssl on;
        #ssl_certificate www.baidu.com_bundle.crt; #證書在conf檔案同級;
        ssl_certificate_key 2_www.baidu.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個協定配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個套件配置
        ssl_prefer_server_ciphers on;
 
		location / {
			proxy_pass http://127.0.0.1:802; #轉發到本機項目端口
        }
 
}

           

反向代理伺服器簡介

一、代理伺服器

1、什麼是代理伺服器

代理伺服器,客戶機在發送請求時,不會直接發送給目的主機,而是先發送給代理伺服器,代理服務接受客戶機請求之後,再向主機發出,并接收目的主機傳回的資料,存放在代理伺服器的硬碟中,再發送給客戶機。

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

2、為什麼要使用代理伺服器

1)提高通路速度

由于目标主機傳回的資料會存放在代理伺服器的硬碟中,是以下一次客戶再通路相同的站點資料時,會直接從代理伺服器的硬碟中讀取,起到了緩存的作用,尤其對于熱門站點能明顯提高請求速度。

2)防火牆作用

由于所有的客戶機請求都必須通過代理伺服器通路遠端站點,是以可在代理伺服器上設限,過濾某些不安全資訊。

3)通過代理伺服器通路不能通路的目标站點

網際網路上有許多開發的代理伺服器,客戶機在通路受限時,可通過不受限的代理伺服器通路目标站點,通俗說,我們使用的翻牆浏覽器就是利用了代理伺服器,雖然不能出國,但也可直接通路外網。

二、反向代理 VS 正向代理

1、什麼是正向代理?什麼是反向代理?

正向代理,架設在客戶機與目标主機之間,隻用于代理内部網絡對Internet的連接配接請求,客戶機必須指定代理伺服器,并将本來要直接發送到Web伺服器上的http請求發送到代理伺服器中。

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

反向代理伺服器架設在伺服器端,通過緩沖經常被請求的頁面來緩解伺服器的工作量,将客戶機請求轉發給内部網絡上的目标伺服器;并将從伺服器上得到的結果傳回給Internet上請求連接配接的用戶端,此時代理伺服器與目标主機一起對外表現為一個伺服器。

(windows反向代理+負載均衡+理論知識)Nginx反向代理伺服器設定

2、反向代理有哪些主要應用?

現在許多大型web網站都用到反向代理。除了可以防止外網對内網伺服器的惡性攻擊、緩存以減少伺服器的壓力和通路安全控制之外,還可以進行負載均衡,将使用者請求配置設定給多個伺服器。

繼續閱讀