本文詳細介紹了在 CentOS 和 Ubuntu 系統上安裝 Nginx 的全過程,包括下載方法、安裝步驟、配置開機自啟以及基礎配置等重要內容,還提供了常見問題的解決方案和優化配置示例,助您順利搭建高效的伺服器環境。 ...
註:這是對我以前博客進行優化後再次發佈的,博客中的截圖為以前的。原博客已刪除。
如何安裝nginx
nginx是一款開源、高性能的Web和反向代理伺服器,支持HTTP、HTTPS、SMTP、POP3和IMAP協議。由於其輕量級、資源占用少和強大的併發能力,nginx廣泛用於多種場景。本文將介紹如何在CentOS和Ubuntu系統上安裝nginx。
下載nginx
方法一:從官網下載後上傳
從nginx的官方網站下載穩定版的安裝包。下載地址為https://nginx.org/en/download.html。選擇穩定版進行下載。
本文將使用FinalShell終端工具進行操作,當然您也可以使用其他工具。FinalShell工具的下載地址是:http://www.hostbuf.com/t/988.html。下載安裝完成後,登錄並連接到伺服器。然後上傳下載好的文件。
您可以通過命令ls
查看上傳的文件。
方法二:通過wget命令直接下載到Linux中
wget
命令是Linux系統中用於從Web下載文件的命令行工具,支持HTTP、HTTPS及FTP協議下載文件。此外,wget
提供了許多選項,例如下載多個文件、後臺下載、使用代理等,非常方便。
在Linux中輸入以下命令進行下載:
wget https://nginx.org/download/nginx-1.22.1.tar.gz
該命令預設將文件下載到當前工作目錄,併在下載過程中顯示進度條、文件大小、下載速度等信息。
下載完成後,文件將保存在當前目錄。
安裝nginx
1、解壓文件
使用以下命令解壓下載好的文件:
# 使用 -zxf 不顯示解壓過程進行解壓
tar -zxf nginx-1.22.1.tar.gz
解壓完成後,您將看到解壓後的文件。
2、初始化配置
進入解壓後的目錄:
cd nginx-1.22.1/
在CentOS上
首先,確保全裝了必要的依賴包:
sudo yum install -y pcre pcre-devel zlib-devel gcc gcc-c++
然後初始化配置:
./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/home/d/nginx/log/access.log --error-log-path=/home/d/nginx/log/error.log --http-fastcgi-temp-path=/home/d/nginx/tmp/fastcgi_tmp --http-proxy-temp-path=/home/d/nginx/tmp/proxy_tmp --http-client-body-temp-path=/home/d/nginx/tmp/client_body_temp --with-pcre --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --modules-path=/etc/nginx/modules --with-http_ssl_module --with-http_v2_module --user=www-data --group=www-data --with-http_dav_module
在這段配置命令中,以下部分可以根據需要進行自定義修改:
-
--prefix=/var/www/html
: nginx安裝的根目錄。可以根據需要選擇不同的安裝位置,如/usr/local/nginx
。 -
--sbin-path=/usr/sbin/nginx
: nginx可執行文件的位置。可以更改為其他目錄,如/usr/local/sbin/nginx
。 -
--conf-path=/etc/nginx/nginx.conf
: nginx主配置文件的位置。可以自定義為其他路徑,如/usr/local/nginx/conf/nginx.conf
。 -
--http-log-path=/home/d/nginx/log/access.log
: HTTP請求的訪問日誌文件路徑。可以更改為其他位置,如/var/log/nginx/access.log
。 -
--error-log-path=/home/d/nginx/log/error.log
: 錯誤日誌文件路徑。可以自定義為其他路徑,如/var/log/nginx/error.log
。 -
--http-fastcgi-temp-path=/home/d/nginx/tmp/fastcgi_tmp
: FastCGI模塊使用的臨時文件路徑。可以修改為其他位置,如/var/cache/nginx/fastcgi_temp
。 -
--http-proxy-temp-path=/home/d/nginx/tmp/proxy_tmp
: 代理模塊使用的臨時文件路徑。可以更改為其他位置,如/var/cache/nginx/proxy_temp
。 -
--http-client-body-temp-path=/home/d/nginx/tmp/client_body_temp
: 存儲HTTP請求主體的臨時文件路徑。可以自定義為其他路徑,如/var/cache/nginx/client_body_temp
。 -
--lock-path=/var/lock/nginx.lock
: nginx的鎖文件路徑。可以修改為其他位置,如/var/run/nginx.lock
。 -
--pid-path=/var/run/nginx.pid
: 存儲nginx進程ID的文件路徑。可以自定義為其他路徑,如/usr/local/nginx/logs/nginx.pid
。 -
--modules-path=/etc/nginx/modules
: nginx模塊的安裝路徑。可以根據需要更改為其他目錄,如/usr/local/nginx/modules
。 -
--user=www-data
: 運行nginx進程的系統用戶。可以修改為系統中的其他用戶,如nginx
。 -
--group=www-data
: 運行nginx進程的系統用戶組。可以自定義為系統中的其他用戶組,如nginx
。
其他參數如--with-pcre
、--with-http_ssl_module
、--with-http_v2_module
、--with-http_dav_module
是功能啟用選項,通常不需要修改。根據具體需求,可以啟用或禁用這些模塊。
如果遇到以下錯誤提示,請安裝相應的依賴包。未出現錯誤提示則直接跳過此部分。
-
錯誤提示:
error: the HTTP rewrite module requires the PCRE library
解決方案:
sudo yum install -y pcre pcre-devel
-
錯誤提示:
error: Invalid C++ compiler or C++ compiler flags
解決方案:
sudo yum install -y gcc gcc-c++
-
錯誤提示:
error: the HTTP gzip module requires the zlib library
解決方案:
sudo yum install -y zlib-devel
安裝依賴完成後,再次執行初始化配置命令。
在Ubuntu上
在Ubuntu中,首先安裝以下依賴:
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev -y
然後進行配置:
./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/home/d/nginx/log/access.log --error-log-path=/home/d/nginx/log/error.log --http-fastcgi-temp-path=/home/d/nginx/tmp/fastcgi_tmp --http-proxy-temp-path=/home/d/nginx/tmp/proxy_tmp --http-client-body-temp-path=/home/d/nginx/tmp/client_body_temp --with-pcre --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --modules-path=/etc/nginx/modules --with-http_ssl_module --with-http_v2_module --user=www-data --group=www-data --with-http_dav_module
3、編譯nginx
使用以下命令編譯nginx:
make
編譯過程中可能需要一些時間,請耐心等待。
4、執行安裝操作
編譯完成後,執行以下命令安裝nginx:
make install
安裝完成後,您將看到相關的提示信息。
5、運行nginx
查找nginx的安裝目錄:
whereis nginx
進入安裝目錄:
cd /usr/local/nginx
執行啟動命令:
./sbin/nginx
使用以下命令查看啟動結果:
ps -ef | grep nginx
如果啟動成功,您將看到相關進程信息。
在瀏覽器中輸入伺服器地址,即可訪問nginx預設頁面。
註:nginx預設使用80埠,請確保伺服器已放行該埠。
配置開機自啟
創建自啟腳本
進入到系統服務目錄:
cd /etc/systemd/system
創建並編輯腳本文件(沒有vim
也可以使用vi
代替):
vim nginx.service
文件內容如下:
[Unit]
# 服務的簡要描述,用於顯示服務的名稱或用途
Description=nginx service
# 指定該服務在網路服務啟動後啟動
After=network.target
[Service]
# 服務類型為forking,表示服務進程會派生一個子進程進行實際工作
Type=forking
# 啟動Nginx服務的命令路徑
ExecStart=/usr/local/nginx/sbin/nginx
# 重新載入Nginx配置的命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# 停止Nginx服務的命令
ExecStop=/usr/local/nginx/sbin/nginx -s quit
# 為服務提供獨立的臨時空間,確保服務的臨時文件與系統其他部分隔離
PrivateTmp=true
[Install]
# 指定服務的目標運行級別,即在多用戶模式下啟動
WantedBy=multi-user.target
配置說明:
-
Description: 自定義服務的描述。
-
After: 可以指定其他需要的服務目標,確保服務在相關服務之後啟動。
-
ExecStart: 根據nginx的實際安裝路徑修改。
-
ExecReload: 根據nginx的實際安裝路徑修改。
-
ExecStop: 根據nginx的實際安裝路徑修改。
-
WantedBy: 可以修改為其他目標,如
graphical.target
,根據系統的運行級別需求進行調整。
設置開機自啟
systemctl enable nginx.service
systemctl其他常用命令
-
啟動服務
systemctl start nginx.service
-
重啟服務
systemctl restart nginx.service
-
停止服務
systemctl stop nginx.service
-
查看服務狀態
systemctl status nginx.service
-
關閉服務
systemctl disable nginx.service
nginx基礎配置
nginx是一款開源、高性能、高可靠的Web和反向代理伺服器,支持熱部署。它還提供IMAP/POP3/SMTP服務,支持不間斷運行和熱更新。nginx占用記憶體少、併發能力強,且可以免費商業化使用,配置簡單。以下是nginx.conf文件的簡單配置示例:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
# server_name 應與443埠一致
server_name domain.com;
# 使用rewrite實現強制https
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name domain.com;
ssl_certificate crt格式文件;
ssl_certificate_key key格式文件;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
# 代理路徑
proxy_pass http://127.0.0.1:8090;
}
}
}
配置說明:
worker_processes
: 定義nginx運行的進程數量。根據伺服器的硬體資源進行調整。worker_connections
: 每個進程最大連接數。可以根據需求增加,以提升併發性能。server_name
: 配置伺服器的功能變數名稱或IP地址。rewrite
: 將所有HTTP請求重定向到HTTPS,確保數據傳輸安全。ssl_certificate
和ssl_certificate_key
: 分別指定SSL證書文件和密鑰文件的路徑,用於啟用HTTPS。proxy_pass
: 配置反向代理,將請求轉發到指定的後端伺服器。
常用的優化配置:
-
開啟Gzip壓縮: 減少傳輸數據量,提升載入速度。
http { gzip on; gzip_types text/plain application/xml; }
-
啟用緩存: 提升響應速度和伺服器性能。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; }
希望這篇博客能幫助您在CentOS和Ubuntu系統上順利安裝並配置nginx。