背景和適用場景
Nginx作為高性能Web服務器和反向代理服務器,在互聯網架構中扮演着核心角色。無論是搭建靜態資源服務、API網關,還是作為負載均衡器,Nginx都是首選方案之一。
這次實戰部署的環境是openEuler 22.03 LTS系統,主要驗證openEuler在軟件生態方面的完善程度。通過這次部署可以看到,從軟件安裝、依賴解決到服務配置,整個流程是否順暢,能否滿足實際生產需求。
環境準備
服務器使用的是華為雲ECS實例,系統版本確認:
cat /etc/os-release
從輸出可以看到系統是openEuler 22.03 LTS版本,這是openEuler的長期支持版本,適合生產環境使用。
Nginx安裝
openEuler使用dnf作為包管理器,安裝Nginx只需要一條命令:
sudo dnf install -y nginx
從安裝輸出可以看到,dnf自動處理了Nginx的所有依賴關係。安裝的軟件包包括:
核心組件:nginx-1:1.21.5主程序、nginx-filesystem文件系統佈局、nginx-all-modules模塊集合
功能模塊:nginx-mod-http-image-filter圖片處理模塊、nginx-mod-http-perl Perl支持、nginx-mod-http-xslt-filter XSLT轉換、nginx-mod-mail郵件代理、nginx-mod-stream TCP/UDP代理
依賴庫:gd和libwebp圖片處理庫、libxslt XML轉換庫、gperftools-libs性能分析工具
整個安裝過程中,14個軟件包自動完成了下載、依賴解決和配置,沒有任何手動干預。驗證安裝版本:
nginx -v
輸出顯示版本為nginx/1.21.5,這是一個穩定且功能完善的版本。
啓動和驗證服務
使用systemd啓動Nginx服務:
sudo systemctl start nginx
sudo systemctl status nginx
從服務狀態輸出可以看到幾個關鍵信息。服務狀態顯示為active (running),説明Nginx已經正常運行。進程方面,系統啓動了3個nginx進程:PID 102315是master主進程負責管理,PID 102316和102317是兩個worker工作進程負責處理請求。內存佔用只有10.0M,資源消耗非常低。
配置文件驗證部分顯示nginx.conf語法正確且測試通過,説明openEuler提供的默認配置是可用的。
檢查Nginx監聽的端口:
sudo netstat -tulnp | grep nginx
從輸出可以看到Nginx監聽在0.0.0.0:80端口,同時支持IPv4和IPv6訪問。使用curl命令本地訪問:
curl http://localhost
返回的HTML頁面標題是"Test Page for the Nginx HTTP Server on openEuler",這説明openEuler官方對Nginx做了適配,提供了專門的歡迎頁面。
Nginx配置文件結構
查看Nginx的配置文件結構:
tree /etc/nginx/
從目錄結構可以看到,openEuler上Nginx的配置採用了模塊化設計。主配置文件nginx.conf負責全局設置,conf.d目錄用於存放自定義站點配置,default.d目錄存放默認配置。fastcgi、scgi、uwsgi三個參數配置文件對應不同的應用服務器協議。mime.types文件定義了文件類型映射關係。
這種結構的好處在於,每個站點可以獨立配置一個文件放在conf.d目錄下,主配置文件保持簡潔,多站點管理互不干擾。
創建自定義站點
建立一個自定義站點來演示實際應用場景。創建站點目錄並編寫測試頁面:
sudo mkdir -p /var/www/mysite
cd /var/www/mysite
sudo tee index.html > /dev/null << 'EOF'
<!DOCTYPE html>
<html>
<head>
<title>openEuler + Nginx 測試頁面</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 800px;
margin: 50px auto;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.container {
background: rgba(255,255,255,0.1);
padding: 30px;
border-radius: 10px;
backdrop-filter: blur(10px);
}
h1 { font-size: 2.5em; margin-bottom: 20px; }
.info { font-size: 1.2em; line-height: 1.8; }
.success { color: #4ade80; font-weight: bold; }
</style>
</head>
<body>
<div class="container">
<h1>🎉 Nginx 部署成功!</h1>
<div class="info">
<p><span class="success">✓</span> 操作系統:openEuler</p>
<p><span class="success">✓</span> Web服務器:Nginx</p>
<p><span class="success">✓</span> 狀態:運行正常</p>
</div>
</div>
</body>
</html>
EOF
從截圖可以看到HTML文件創建完成,頁面採用了漸變背景和毛玻璃效果的現代化設計。設置文件權限:
sudo chmod 755 /var/www/mysite
sudo chmod 644 /var/www/mysite/index.html
接下來為這個站點創建Nginx配置文件:
sudo tee /etc/nginx/conf.d/mysite.conf > /dev/null << 'EOF'
server {
listen 8080;
server_name localhost;
root /var/www/mysite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/mysite_access.log;
error_log /var/log/nginx/mysite_error.log;
}
EOF
這個配置文件讓Nginx在8080端口監聽,站點根目錄指向/var/www/mysite,同時配置了獨立的訪問日誌和錯誤日誌。
驗證配置文件語法並重載服務:
sudo nginx -t
sudo systemctl reload nginx
從輸出可以看到配置文件語法檢查通過,測試成功。使用ss命令查看端口監聽情況,可以看到Nginx現在同時監聽80和8080兩個端口,原有的默認站點和新建的自定義站點都在運行。
訪問測試
訪問新建的自定義站點:
curl http://localhost:8080
從curl輸出可以看到完整的HTML代碼正常返回,包括漸變背景樣式和頁面內容。如果通過瀏覽器訪問服務器IP的8080端口,會看到一個帶有紫藍色漸變背景、半透明容器的現代化頁面,顯示Nginx部署成功的狀態信息。
實戰總結
整個部署過程用時不到10分鐘,從系統環境確認、軟件安裝、服務啓動到自定義站點配置,每一步都很順暢。openEuler的軟件倉庫中Nginx版本是1.21.5穩定版,包含了所有常用模塊,dnf包管理器自動解決了14個依賴包的安裝,完全不需要手動編譯或配置環境變量。配置文件結構採用了主配置加conf.d目錄的模塊化設計,方便管理多個站點。systemd集成讓服務管理變得簡單,通過systemctl就能完成啓動、停止、重載等操作。從這次部署可以看出,openEuler在軟件生態方面的完善程度已經達到了生產環境的要求,對於Web服務器這類基礎設施軟件,安裝即可用,配置即生效,運維成本很低。
如果您正在尋找面向未來的開源操作系統,不妨看看DistroWatch 榜單中快速上升的 openEuler: https://distrowatch.com/table-mobile.php?distribution=openeuler,一個由開放原子開源基金會孵化、支持“超節點”場景的Linux 發行版。
openEuler官網:https://www.openeuler.openatom.cn/zh/