Nginx快速入門


Nginx服務快速入門

一、Nginx介紹

1. 什么是Nginx?

  • Nginx (engine x) 是一個高性能的HTTP反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。

  • 其特點是占有內存少,並發能力強,事實上nginx的並發能力在同類型的網頁服務器中表現較好。

2. 為什么要使用Nginx?

隨着當今互聯網的迅速發展,單點服務器早已無法承載上萬個乃至數十萬個用戶的持續訪問。比如一台Tomcat服務器在理想狀態下只能夠可以承受住2000個左右的並發量,為了解決這個問題,就需要多台Tomcat服務器來進行負載均衡。

那么,應該如何實現負載均衡?Nginx就是其中的一種解決方案,當用戶訪問網站時,Nginx攔截到這個訪問請求,並將其通過輪詢的方式均勻地分配到不同的服務器上。

並且,在Nginx中有一種ip_hash策略,它可以獲取到用戶的真實IP,計算出hash值來選擇服務器,這也是一種優秀的負載均衡方式。 所以,掌握Nginx成為了Web開發學習道路上不可缺少的一部分。

3. 什么是正向代理?

正向代理,就是客戶端將自己的請求率先發給代理服務器,通過代理服務器將請求轉發給服務器。我們常用的VPN就是一種代理服務器,為了可以連上國外的網站,客戶端需要使用一個可以連接外網的服務器作為代理,並且客戶端能夠連接上該代理服務器。

4. 什么是反向代理?

反向代理與正向代理不同,正向代理是代理了客戶端,而反向代理則是代理服務器端。在有多台服務器分布的情況下,為了能讓客戶端訪問到的IP地址都為同一個網站,就需要使用反向代理。

明白了反向代理的工作機制后,接下來就可以進入Nginx的學習!

二、Nginx在Linux下的安裝

由於Nginx被大量使用在Web服務器中,所以本教程選擇了Centos服務器的7.4版本作為演示!

1. 下載

進入官方下載頁面:http://nginx.org/en/download.html,選擇Stable version穩定版本進行下載,並上傳至服務器。

2. 安裝

  • 上傳tar包至服務器后,解壓到當前目錄

    tar -zxvf  nginx-1.18.0.tar.gz -C ./
    
  • 進入解壓后的目錄,執行configure腳本

    cd nginx-1.18.0/
    ./configure
    
  • 使用make命令進行安裝

    make && make install
    
  • 安裝完成后,使用whereis命令查找Nginx的安裝位置 (默認安裝在/user/local/目錄下)

    whereis nginx
    
  • 進入安裝目錄下的bin文件夾,啟動nginx服務,訪問服務器默認的80端口查看是否安裝成功!

三、Nginx配置入門

1. 配置文件

在Nginx的安裝目錄下有一個conf文件夾,打開其中的nginx.conf文件

cd conf/ && vim nginx.conf

2. 反向代理單個服務器

那么,如何使用Nginx進行反向代理?

在location參數中添加proxy_pass字段,並填寫需要反向代理的服務器地址與端口號:

注意:每一行的配置都需要以封號結尾!!!

# 配置監聽的目錄為:/
location / {
	root html;
	index index.html index.htm;
	proxy_pass http://127.0.0.1:8080;  # 反向代理了本機的8080端口
	# proxy_pass http://127.0.0.1:8081;  # 可以同時配置多條proxy_pass,反向代理了本機的8081端口
}

3. 反向代理多台服務器

如果有多台服務器怎么辦?除了不斷地添加proxy_pass參數,更好的解決方案是配置upstream服務器組!

在配置文件的http塊中添加upstream屬性:

# 配置服務器組,取名為hello
upstream hello{
	# 一個server對應一個服務器,當然也可以是不同端口的web程序
	server 127.0.0.1:8080;
	server 127.0.0.1:8081;
}
# 在location塊中修改反向代理為服務器組
location / {
	root html;
	index index.html index.htm;
	proxy_pass http://hello;  # 反向代理了hello服務器組中的所有服務器
}

四、運行測試

1. 啟動服務

配置完成后,進入Nginx安裝目錄下的sbin文件夾,運行nginx程序即可:

/usr/local/nginx/sbin/nginx

如果之前已經啟動,無需關閉nginx服務,只需要讓nginx重新加載配置文件即可:

nginx -s reload

刷新瀏覽器,若反向代理成功,訪問的路徑會自動映射到配置文件中的服務器地址!

將來,隨着用戶量的增長,可能需要添加新的服務器;這時只需要修改配置文件,使用 nginx -s reload 命令即可,無需關閉nginx服務器!

2. 關閉服務

關閉nginx服務的方式一般分為兩種:

nginx -s stop # 立即停止,無論是否在工作
nginx -s quit # 等待進程完成當前工作后安全退出

五、負載均衡

1. 什么是負載均衡?

由於不同服務器的配置不同,為了讓性能高的服務器分配到更多的請求,便引入了負載均衡的概念。

前面提到過,Nginx的負載均衡方式可以有很多種,如加權輪詢(默認)、IP哈希、url哈希等等,這里就以加權輪詢作為介紹。

加權輪詢,也就是通過給服務器添加各自的權重值,Nginx通過權重來進行請求的分配,權重越高接收到的請求數量越多,反之越少:

上圖配置了三台服務器,在加權輪詢的模式下,6次不同的請求中,權重為3的服務器將會分配到3次請求,權重為2的服務器會分配到2個請求,權重為1的服務器則會分配到1個請求。負載均衡大大減少了在高並發的環境下服務器宕機的風險!

2. 配置Nginx負載均衡

同樣地,打開nginx.conf文件進行配置:

vim nginx.conf

在upstream塊中添加weight參數:

upstream hello{
	server 服務器1:8080 weight=3; # 配置服務器1的權重為3
	server 服務器2:8080 weight=1; # 配置服務器2的權重為1
}

添加完成后執行 nginx -s reload 即可!

本文鏈接:https://www.cnblogs.com/ljr825010/p/14351625.html
轉載:歡迎轉載,但未經作者同意,必須保留此段聲明,必須在文章中給出原文連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM