背景和適用場景

Nginx作為高性能Web服務器和反向代理服務器,在互聯網架構中扮演着核心角色。無論是搭建靜態資源服務、API網關,還是作為負載均衡器,Nginx都是首選方案之一。

這次實戰部署的環境是openEuler 22.03 LTS系統,主要驗證openEuler在軟件生態方面的完善程度。通過這次部署可以看到,從軟件安裝、依賴解決到服務配置,整個流程是否順暢,能否滿足實際生產需求。

環境準備

服務器使用的是華為雲ECS實例,系統版本確認:

cat /etc/os-release

openEuler軟件生態體驗:快速部署Nginx Web服務器_Nginx

從輸出可以看到系統是openEuler 22.03 LTS版本,這是openEuler的長期支持版本,適合生產環境使用。

Nginx安裝

openEuler使用dnf作為包管理器,安裝Nginx只需要一條命令:

sudo dnf install -y nginx

openEuler軟件生態體驗:快速部署Nginx Web服務器_nginx_02

從安裝輸出可以看到,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

openEuler軟件生態體驗:快速部署Nginx Web服務器_配置文件_03

從服務狀態輸出可以看到幾個關鍵信息。服務狀態顯示為active (running),説明Nginx已經正常運行。進程方面,系統啓動了3個nginx進程:PID 102315是master主進程負責管理,PID 102316和102317是兩個worker工作進程負責處理請求。內存佔用只有10.0M,資源消耗非常低。

配置文件驗證部分顯示nginx.conf語法正確且測試通過,説明openEuler提供的默認配置是可用的。

檢查Nginx監聽的端口:

sudo netstat -tulnp | grep nginx

openEuler軟件生態體驗:快速部署Nginx Web服務器_配置文件_04

從輸出可以看到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 Web服務器_配置文件_05

從目錄結構可以看到,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

openEuler軟件生態體驗:快速部署Nginx Web服務器_Nginx_06

從截圖可以看到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

openEuler軟件生態體驗:快速部署Nginx Web服務器_配置文件_07

從輸出可以看到配置文件語法檢查通過,測試成功。使用ss命令查看端口監聽情況,可以看到Nginx現在同時監聽80和8080兩個端口,原有的默認站點和新建的自定義站點都在運行。

訪問測試

訪問新建的自定義站點:

curl http://localhost:8080

openEuler軟件生態體驗:快速部署Nginx Web服務器_配置文件_08

從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/