在 Linux 上安裝 Nginx 搭建屬于自己的 Web 服務器
本指南將幫助您在各種 Linux 發行版上安裝 Nginx,您將了解重要的 Nginx 配置文件和目錄。
由于其性能和易用性,Nginx 是最受歡迎的 Web 服務器。它是一個免費和開源的高性能 HTTP 服務器。除了Web 服務器功能,Nginx 還可以充當反向代理和負載均衡器。
按照以下步驟將向您展示如何在 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux 等各種 Linux 發行版上安裝 Nginx,并測試其功能。
此外,如果您想知道如何使用免費的 Let's Encrypt SSL 證書來保護您的 Nginx,我建議您閱讀我們的指南Let's Encrypt:使用 Certbot 獲取免費的 SSL 證書(見 https://www.linuxmi.com/lets-encrypt-certbot-ssl.html )。
目錄
- 1. 安裝 Nginx
- 1.1 在 Ubuntu 或 Debian 上安裝 Nginx
- 1.2 在 CentOS 7 上安裝 Nginx
- 1.3 在 CentOS 8、Rocky Linux 或 AlmaLinux 上安裝 Nginx
- 2.檢查Nginx服務狀態
- 3. Nginx 配置文件和目錄
- 3.1 服務器配置文件
- 3.2 Nginx 日志
- 3.3 默認公共 Web 目錄
- 結論
1. 安裝 Nginx
在開始之前,您應該擁有一個具有sudo特權的常規非 root 用戶。
1.1 在 Ubuntu 或 Debian 上安裝 Nginx
Nginx 在默認的Ubuntu和Debian存儲庫中可用,因此您可以使用apt 包管理工具輕松安裝它 。
讓我們首先確保您的系統是最新的:
- sudo apt update
之后,您可以安裝 Nginx:
- sudo apt install nginx
1.2 在 CentOS 7 上安裝 Nginx
在 CentOS 7 上,Nginx 包在EPEL(企業 Linux 的額外包)存儲庫中可用。如果你還沒有安裝它,你可以輸入:
- sudo yum install epel-release
現在您可以繼續安裝 Nginx:
- sudo yum install nginx
請按y ,然后 按 Enter 接受 EPEL GPG 鍵。
安裝完成后,啟用并啟動 Nginx 服務:
- sudo systemctl enable nginx
- sudo systemctl start nginx
最后,您需要同時打開 HTTP (80) 和HTTPS (443)端口。
- sudo firewall-cmd --permanent --zone=public --add-service=http
- sudo firewall-cmd --permanent --zone=public --add-service=https
- sudo firewall-cmd --reload
1.3 在 CentOS 8、Rocky Linux 或 AlmaLinux 上安裝 Nginx
為了安裝 Nginx,我們將使用 dnf 包管理器,它是CentOS 8、Rocky Linux和AlmaLinux上的默認包管理器。
首先,更新所有可用的包:
- [linuxmi@localhost www.linuxmi.com]$ sudo dnf upgrade
更新完成后,運行以下命令安裝Nginx:
- [linuxmi@localhost www.linuxmi.com]$ sudo dnf install nginx
圖片 安裝完成后,啟用并啟動 Nginx 服務:
- [linuxmi@localhost www.linuxmi.com]$ sudo systemctl enable nginx
- Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
- [linuxmi@localhost www.linuxmi.com]$ sudo systemctl start nginx
要允許 防火墻上的HTTP (80) 和 HTTPS (443)流量,請執行以下命令:
- sudo firewall-cmd --permanent --zone=public --add-service=http
- sudo firewall-cmd --permanent --zone=public --add-service=https
- sudo firewall-cmd --reload
2.檢查Nginx服務狀態
要確認 Nginx Web 服務器正在運行,請執行以下命令:
- [linuxmi@localhost www.linuxmi.com]$ sudo systemctl status nginx
輸出如下:
- ● nginx.service - The nginx HTTP and reverse proxy server
- Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor prese>
- Active: active (running) since Sun 2021-12-12 20:37:40 EST; 1min 18s ago
- Process: 3715 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
- Process: 3713 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
- Process: 3712 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status>
- Main PID: 3717 (nginx)
- Tasks: 2 (limit: 23372)
- Memory: 6.5M
- CGroup: /system.slice/nginx.service
- ├─3717 nginx: master process /usr/sbin/nginx
- └─3718 nginx: worker process
從上面顯示的輸出中,您可以得出結論,Nginx 服務已啟動并正在運行。
此外,您可以訪問默認的 Nginx 登錄頁面,通過導航到您服務器的 IP 地址來確認 Web 服務器運行正常。
這將顯示默認的 Nginx 登陸頁面,表明一切正常。
3. Nginx 配置文件和目錄
現在 Nginx 已安裝,您應該注意一些重要的文件夾和位置。
3.1 服務器配置文件
- /etc/nginx: 包含所有 Nginx 配置文件的主目錄。
- /etc/nginx/nginx.conf: 主要的 Nginx 配置文件。
- /etc/nginx/sites-available: 定義單個網站的目錄。請記住,Nginx 不會使用在此目錄中找到的配置文件,除非它們鏈接到該 /etc/nginx/sites-enabled 目錄。
- /etc/nginx/sites-enabled:由 Nginx 主動服務的網站列表。
要激活網站以便將它們鏈接到 /etc/nginx/sites-enable 目錄,請使用下面顯示的命令創建網站配置的符號鏈接:
- sudo ln -s /etc/nginx/sites-available/mydomain.com.conf /etc/nginx/sites-enabled/
當然,您需要替換 mydomain.com.conf 為您的 VirtualHost.conf文件。
3.2 Nginx 日志
Nginx 日志文件(access.log 和 error.log)位于該 /var/log/nginx/目錄中。
- access.log:對您的 Web 服務器的每個請求都記錄在此日志文件中。
- error.log:Nginx 中生成的任何錯誤的日志。當您的服務器未按預期運行時,您將在這里進行故障排除。
3.3 默認公共 Web 目錄
默認情況下,Nginx在其基本配置文件中設置了默認文檔根目錄。創建虛擬主機或服務器塊時,Web 服務器會在這些配置文件中指定的文檔根目錄中查找網站文件。
- /var/www/html:在 Ubuntu 和 Debian 上,Nginx 將其文檔存儲在這里。
- /usr/share/nginx/html:在 CentOS、Rocky Linux 和 Alma Linux 上,默認的 Nginx 網頁位于此處。
結論
在本教程中,您學習了如何在各種 Linux 發行版上安裝 Nginx。現在由您決定要為用戶提供哪些內容。