Linux離線安裝nginx
1.切換到root用戶
#切換到root用戶
su -
#退出root用戶
exit
2.目錄操作
#切到根目錄
cd /
#查看目錄
ls
#切目錄
cd /home/...
#到對應的目錄下解壓
3.安裝Nginx
在有網絡的設備上下載以下文件:
- Nginx:從 nginx.org/en/download 下載。
- OpenSSL:從 www.openssl.org/source 下載。
- PCRE:從 sourceforge.net/projects/pcre 下載。
- zlib:從 www.zlib.net 下載。
#---------------安裝pcre庫-------------------#
#安裝pcre庫
#cd到壓縮文件的目錄,解壓pcre-8.45.tar.gz
tar -zxvf pcre-8.45.tar.gz
#cd到pcre-8.45目錄,執行./configure 編譯
./configure
# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install#---------------安裝zlib庫-------------------##cd到壓縮文件的目錄,解壓zlib.tar.gz
tar -zxvf zlib.tar.gz
# cd zlib目錄,執行./configure 編譯
./configure
# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install#---------------安裝openssl庫-------------------#
#安裝openssl庫,openssl版本和nginx是配套的,要安裝nginx對應的版本
#cd到壓縮文件的目錄,解壓openssl-3.5.0.tar.gz
tar -zxvf openssl-3.5.0.tar.gz#cd openssl-3.5.0目錄 執行./config 編譯
./config# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install#---------------安裝nginx-------------------#
#nginx,之前的三個庫必須先裝
#cd到壓縮文件的目錄,解壓nginx-1.28.0.tar.gz
tar -zxvf nginx-1.28.0.tar.gz
# nginx-1.28目錄,執行./configure 編譯或者./configure --prefix=/usr/local/nginx
./configure
# make編譯
make
# make install安裝,默認情況下,會安裝到/usr/local目錄下
make install
4.啟動驗證
#啟動命令:/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx
#重啟:
/usr/local/nginx/sbin/nginx –s reload
#停止:
/usr/local/nginx/sbin/nginx –s stop
#測試配置文件是否正常:/usr/local/nginx/sbin/nginx –t
#強制關閉:
pkill nginx
查看Nginx進程
你可以使用ps
或pgrep
命令來查看Nginx進程是否正在運行。
ps -ef | grep nginx
解釋輸出
-
如果Nginx正在運行,你會看到類似以下的輸出:
root 1234 1 0 12:00 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 1235 1234 0 12:00 ? 00:00:00 nginx: worker process
root
表示Nginx主進程以root
用戶運行。www-data
表示Nginx工作進程以www-data
用戶運行。
-
如果Nginx未運行,你只會看到
grep
命令本身:user 1236 1233 0 12:05 pts/0 00:00:00 grep --color=auto nginx
查Nginx服務狀態
運行以下命令:
sudo systemctl status nginx
解釋輸出
-
如果Nginx正在運行,你會看到類似以下的輸出:
● nginx.service - A high performance web server and a reverse proxy serverLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2025-06-20 12:00:00 CST; 1min agoMain PID: 1234 (nginx)Tasks: 2 (limit: 4915)Memory: 2.5MCGroup: /system.slice/nginx.service├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;└─1235 nginx: worker process
Active: active (running)
表示Nginx正在運行。Main PID
顯示了Nginx主進程的進程ID。
-
如果Nginx未運行,你會看到類似以下的輸出:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead)
#### **檢查端口監聽情況**Nginx通常監聽80端口(HTTP)和/或443端口(HTTPS)。你可以使用`netstat`或`ss`命令來檢查這些端口是否被Nginx占用。使用netstat命令```bash
sudo netstat -tulnp | grep nginx
解釋輸出
-
如果Nginx正在運行,你會看到類似以下的輸出
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1234/nginx
LISTEN
表示Nginx正在監聽這些端口。1234
是Nginx主進程的PID。
-
如果Nginx未運行,該命令不會輸出任何內容。
5.修改配置文件
- 從源碼編譯安裝:默認情況下,配置文件位于
/usr/local/nginx/conf/nginx.conf
server {listen 8080; # 修改為8080端口server_name example.com;location / {root /var/www/html;#修改地址index index.html index.htm;}
}
- 配置反向代理:如果你想將請求轉發到后端服務器,可以使用proxy_pass指令:
server {listen 80;server_name example.com;location / {proxy_pass http://backend-server:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
- 使用nano編輯器修改nginx.conf
nano
是一個簡單易用的文本編輯器,適合初學者。
-
打開
nginx.conf
文件:sudo nano /usr/local/nginx/conf/nginx.conf
-
修改配置文件:
- 使用方向鍵導航到需要修改的地方。
- 直接編輯內容。
-
保存并退出:
- 按下
Ctrl + X
,然后按下Y
確認保存,最后按下Enter
鍵退出。
- 按下