一、什么是Nginx

Nginx(Engine x)是一款開源的高性能HTTP和反向代理服務(wù)器。它具有高并發(fā)、高性能、低內(nèi)存占用等特點,廣泛應(yīng)用于網(wǎng)站、游戲、API等場景。Nginx的主要功能包括負載均衡、反向代理、緩存加速、安全防護等。

二、Nginx的優(yōu)點

1. 高并發(fā):Nginx支持單進程、多進程和異步非阻塞等多種模式,可以處理大量的并發(fā)請求。

2. 高性能:Nginx采用事件驅(qū)動模型,每個連接都會在一個獨立的事件循環(huán)中運行,從而避免了多線程帶來的性能損耗。

3. 低內(nèi)存占用:Nginx采用了高度優(yōu)化的內(nèi)核代碼和數(shù)據(jù)結(jié)構(gòu),使得其內(nèi)存占用遠低于其他同類產(chǎn)品。

4. 支持豐富的模塊:Nginx提供了豐富的模塊,可以根據(jù)需要進行擴展和定制。

5. 部署簡單:Nginx支持平滑升級和熱部署,可以在不中斷服務(wù)的情況下進行配置修改。

三、如何配置Nginx實現(xiàn)請求轉(zhuǎn)發(fā)

1. 安裝Nginx

在具備基本Linux操作知識的前提下,可以通過包管理器或源碼編譯的方式安裝Nginx。以Ubuntu為例,可以使用以下命令安裝:

sudo apt-get update
sudo apt-get install nginx

2. 配置反向代理

編輯Nginx的主配置文件"/etc/nginx/nginx.conf",在"http"塊中添加一個新的"server"塊,用于配置反向代理。例如,將請求轉(zhuǎn)發(fā)到后端的Node.js應(yīng)用:

http {
    ...
    server {
    listen 80;
    server_name example.com;
        location / {
            proxy_pass http://backend_app:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    ...
}

其中,"listen"指令表示監(jiān)聽的端口,"server_name"表示域名,"location"塊中的"proxy_pass"指令表示后端應(yīng)用的地址和端口。其他指令用于設(shè)置請求頭信息。

3. 重啟Nginx

配置完成后,需要重啟Nginx使配置生效。在終端輸入以下命令:

sudo service nginx restart

或者

sudo systemctl restart nginx

4. 測試請求轉(zhuǎn)發(fā)是否成功

在瀏覽器或Postman等工具中訪問配置好的域名,如果一切正常,應(yīng)該可以看到后端Node.js應(yīng)用返回的內(nèi)容。同時,可以在Nginx的日志文件中查看詳細的請求信息,如請求時間、響應(yīng)狀態(tài)碼等。日志文件通常位于"/var/log/nginx/"目錄下。