Nginx中的主要應用場景是什麼
Nginx的主要應用場景
靜態網站部署
nginx是一個http的web伺服器,可以將伺服器上的靜態文件(html、css、圖片)透過HTTP協定傳回瀏覽器用戶端。
範例:我們在伺服器上部署一個靜態資源index.html
#將index.html上傳到linux /opt/www/test
修改nginx.conf 增加一個location,攔截/test的請求,root 對應的/opt/www路徑代表根路徑,也就是/test前面的/斜線
location /test { root /opt/www; index index.html; }
啟動nginx或重新載入nginx
#我們造訪下:http://192.168.253.130/test/
負載平衡
負載平衡可以分為硬體負載平衡與軟體負載平衡
硬體負載平衡,例如F5、深信服、Array等,優點是有廠商專業團隊支持,效能穩定;缺點是價格昂貴
軟體負載均衡,例如Nginx、LVS、HAProxy等,優點是免費開源,成本低廉
輪詢法:將請求輪流分配到後端伺服器上,它平衡地對待後端的每一台伺服器,而不關心伺服器實際的連線數和目前的系統負載。
http { upstream test{ ##后端实际服务器 nginx在轮询访问以下几台服务器 server 10.100.30.1:8080; server 10.100.30.2:8080; server 10.100.30.3:8080; server 10.100.30.4:8080; } server { ##前端拦截入口 listen 80; server_name www.test.com; location / { proxy_pass http://test; } } }
加權輪詢法:不同的後端伺服器可能機器的設定和目前系統的負載並不相同,因此它們的抗壓能力也不相同。
給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其係統負載,加權輪詢能很好地處理這個問題,並將請求順序且按照權重分配到後端。
http { upstream test{ ##后端实际服务器 nginx在轮询访问以下几台服务器 server 10.100.30.1:8080 weight=1; server 10.100.30.2:8080 weight=3; server 10.100.30.3:8080 weight=1; server 10.100.30.4:8080 weight=1; } server { ##前端拦截入口 listen 80; server_name www.test.com; location / { proxy_pass http://test; } } }
來源位址雜湊法:根據取得客戶端的IP位址,透過雜湊函數計算得到一個數值,用該數值對伺服器清單的大小進行取模運算,得到的結果就是客服端要存取伺服器的序號。
採用來源位址雜湊法進行負載平衡,同一IP位址的客戶端,當後端伺服器清單不變時,它每次都會對應到同一台後端伺服器進行存取。
upstream test{ ip_hash; server 10.100.30.1:8080 weight=1; server 10.100.30.2:8080 weight=3; server 10.100.30.3:8080 weight=1; server 10.100.30.4:8080 weight=1; }
最小連線數法:由於後端伺服器的設定不盡相同,對於請求的處理有快有慢,最小連線數法根據後端伺服器目前的連線情況,動態地選取其中目前積壓連接數最少的一台伺服器來處理目前的請求,盡可能地提高後端服務的利用效率,將負責合理地分流到每一台伺服器。
upstream test{ least_conn; server 10.100.30.1:8080; server 10.100.30.2:8080; server 10.100.30.3:8080; server 10.100.30.4:8080; }
down:表示停掉某台服務
upstream test{ server 10.100.30.1:8080 down; server 10.100.30.2:8080; server 10.100.30.3:8080; server 10.100.30.4:8080; }
backup:指定備用伺服器,正常情況下只要有其他伺服器能正常訪問,備用伺服器不會被訪問到,只有其他伺服器都掛掉的時候,才會使用備用伺服器,所以採用這種方式一般用來實現熱部署,先把程式碼更新到備用伺服器上,然後停掉正常伺服器,正常伺服器部署完成後,備用伺服器又處於等待狀態,整個部署過程使用戶能夠感受不到停機。
upstream test{ server 10.100.30.1:8080 backup; server 10.100.30.2:8080 backup; server 10.100.30.3:8080; server 10.100.30.4:8080; }
靜態代理程式
#動靜分離
Nginx的使用場景及範例
Nginx是一款高效能、高並發的HTTP伺服器和反向代理伺服器,可用於靜態資源伺服器、負載平衡器、反向代理、快取伺服器、Web伺服器等多種場景。
下面列舉幾個使用場景和範例:
1.靜態資源伺服器
#在使用Nginx作為靜態資源伺服器時,Nginx會直接傳回請求的文件,從而減輕Web伺服器的負擔。這種場景通常用於提供靜態文件下載或影片等大檔案的存取。
下面是一個範例Nginx設定:
server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } location /images/ { alias /var/www/images/; } location /downloads/ { alias /var/www/downloads/; } }
upstream backend { server backend1.example.com:8080 weight=3; server backend2.example.com:8080; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
上述配置中,Nginx会将访问根目录(/)的请求转发给后端的Web服务器(backend1.example.com和backend2.example.com),其中backend1.example.com的权重为3,backend2.example.com的权重为1,表示backend1.example.com的处理能力更强。
在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。
3.负载均衡器
在使用Nginx作为负载均衡器时,Nginx会将请求均衡地分发到多个Web服务器上,从而实现高并发、高可用的服务。这种场景通常用于Web应用程序的集群部署、分布式系统的部署等。下面是一个示例Nginx配置:
upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; server backend3.example.com:8080; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
上述配置中,Nginx会将请求均衡地分发到三个Web服务器(backend1.example.com、backend2.example.com和backend3.example.com)上,从而实现负载均衡。
在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。
4.缓存服务器
在使用Nginx作为缓存服务器时,Nginx会缓存Web服务器返回的响应,从而减少对Web服务器的请求。这种场景通常用于提高Web应用程序的性能、降低Web服务器的负载等。下面是一个示例Nginx配置:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { listen 80; server_name example.com; location / { proxy_cache my_cache; proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
上述配置中,Nginx会将Web服务器返回的响应缓存到/var/cache/nginx/my_cache目录下,并设置缓存有效期为60分钟。在缓存命中时,Nginx会直接返回缓存的响应,从而减少对Web服务器的请求。
总之,Nginx具有很强的可扩展性和灵活性,可以根据不同的需求配置不同的使用场景。以上仅是一些示例,实际应用中还有很多其他的使用场景。
5.反向代理服务器
在使用Nginx作为反向代理服务器时,Nginx会将客户端请求转发到后端的Web服务器上,并将后端服务器返回的响应转发给客户端。这种场景通常用于隐藏后端服务器的真实IP、提高Web应用程序的可用性等。下面是一个示例Nginx配置:
server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
上述配置中,Nginx会将客户端请求转发到http://backend上,并设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏后端服务器的真实IP。
6.WebSocket服务器
在使用Nginx作为WebSocket服务器时,Nginx会将客户端请求转发到后端的WebSocket服务器上,并实现WebSocket协议的连接管理。这种场景通常用于实时通信、游戏等应用程序。
下面是一个示例Nginx配置:
map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
上述配置中,Nginx会将WebSocket请求转发到http://backend上,并设置HTTP头信息中的Upgrade、Connection、Host和X-Real-IP字段,从而实现WebSocket协议的连接管理。
总之,Nginx具有很多的使用场景,可以根据不同的需求配置不同的服务器功能。以上仅是一些示例,实际应用中还有很多其他的使用场景。
以上是Nginx中的主要應用場景是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

當 Nginx 服務器宕機時,可執行以下故障排除步驟:檢查 nginx 進程是否正在運行。查看錯誤日誌以獲取錯誤消息。檢查 nginx 配置語法正確性。確保 nginx 具有訪問文件所需的權限。檢查文件描述符打開限制。確認 nginx 正在偵聽正確的端口。添加防火牆規則以允許nginx流量。檢查反向代理設置,包括後端服務器可用性。如需進一步幫助,請聯繫技術支持。
