Nginx常用命令和部署詳解以及實(shí)戰(zhàn)案例示范
一、Nginx常用命令
1.1 啟動(dòng) Nginx
要啟動(dòng) Nginx 服務(wù),可以使用以下命令:
sudo systemctl start nginx
1.2 停止 Nginx
如果需要停止 Nginx 服務(wù),可以使用以下命令:
sudo systemctl stop nginx
1.3 重啟 Nginx
在修改了 Nginx 配置文件后,需要重啟 Nginx 以使更改生效??梢允褂靡韵旅睿?/p>
sudo systemctl restart nginx
1.4 重新加載配置
當(dāng)修改了配置文件,但不希望停止服務(wù)時(shí),可以使用以下命令重新加載配置:
sudo systemctl reload nginx
1.5 查看 Nginx 狀態(tài)
要查看 Nginx 的當(dāng)前運(yùn)行狀態(tài),可以使用以下命令:
sudo systemctl status nginx
這將顯示 Nginx 是否正在運(yùn)行,以及其相關(guān)信息。
1.6 測(cè)試配置文件
在修改 Nginx 配置文件后,可以使用以下命令測(cè)試配置的正確性:
sudo nginx -t
如果配置文件正確,會(huì)返回 “syntax is ok” 和 “test is successful” 的信息。如果有錯(cuò)誤,則會(huì)給出具體的錯(cuò)誤信息和所在的配置文件行數(shù)。
1.7 查看 Nginx 日志
Nginx 的錯(cuò)誤日志和訪問(wèn)日志通常位于 /var/log/nginx
目錄中。以下命令可以實(shí)時(shí)查看錯(cuò)誤日志:
tail -f /var/log/nginx/error.log
訪問(wèn)日志可以使用類似的命令查看:
tail -f /var/log/nginx/access.log
1.8 查看 Nginx 進(jìn)程
要查看當(dāng)前運(yùn)行的 Nginx 進(jìn)程,可以使用以下命令:
ps aux | grep nginx
這將列出所有 Nginx 相關(guān)的進(jìn)程信息,包括主進(jìn)程和工作進(jìn)程。
1.9 配置 Nginx 開機(jī)自啟動(dòng)
要設(shè)置 Nginx 在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),可以使用以下命令:
sudo systemctl enable nginx
1.10 禁用 Nginx 開機(jī)自啟動(dòng)
如果需要禁用 Nginx 在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),可以使用以下命令:
sudo systemctl disable nginx
二、在 CentOS 上部署 Nginx
2.1 安裝 Nginx
在 CentOS 上安裝 Nginx 可以通過(guò) EPEL(Extra Packages for Enterprise Linux)倉(cāng)庫(kù)或源代碼編譯來(lái)完成。下面介紹使用 yum 安裝的方法:
# 安裝 EPEL 倉(cāng)庫(kù) sudo yum install epel-release # 安裝 Nginx sudo yum install nginx # 啟動(dòng) Nginx sudo systemctl start nginx # 設(shè)置開機(jī)自啟動(dòng) sudo systemctl enable nginx
2.2 驗(yàn)證安裝
安裝完成后,可以通過(guò)以下命令檢查 Nginx 的狀態(tài):
sudo systemctl status nginx
然后在瀏覽器中輸入 http://your_server_ip
,如果看到 Nginx 的歡迎頁(yè)面,說(shuō)明安裝成功。
2.3 Nginx 配置文件
Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf
。下面是一個(gè)基本的配置示例:
worker_processes auto; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; # 靜態(tài)文件路徑 index index.html index.htm; # 默認(rèn)首頁(yè) } error_page 404 /404.html; # 自定義404頁(yè)面 location = /404.html { internal; } } }
三、在 Docker 中部署 Nginx
3.1 Docker 安裝
首先,需要在 CentOS 上安裝 Docker:
# 更新 yum sudo yum update # 安裝必要的依賴 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加 Docker 官方的 yum 源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安裝 Docker sudo yum install docker-ce # 啟動(dòng) Docker sudo systemctl start docker # 設(shè)置開機(jī)自啟動(dòng) sudo systemctl enable docker
3.2 拉取 Nginx 鏡像
sudo docker pull nginx
3.3 運(yùn)行 Nginx 容器
以下是啟動(dòng) Nginx 容器的命令:
sudo docker run --name my-nginx -p 80:80 -d nginx
此命令將 Nginx 運(yùn)行在后臺(tái)并映射到宿主機(jī)的 80 端口。
四、Docker 掛載 HTML 文件實(shí)現(xiàn)實(shí)時(shí)刷新數(shù)據(jù)
在實(shí)際開發(fā)中,我們可能需要實(shí)時(shí)更新 Nginx 提供的靜態(tài)資源??梢酝ㄟ^(guò) Docker 的掛載功能來(lái)實(shí)現(xiàn)這一點(diǎn)。
4.1 準(zhǔn)備 HTML 文件
創(chuàng)建一個(gè) HTML 文件夾,并在其中添加一個(gè)簡(jiǎn)單的 HTML 文件。
mkdir ~/nginx-html echo "<h1>Hello, Nginx!</h1>" > ~/nginx-html/index.html
4.2 啟動(dòng) Nginx 容器并掛載目錄
使用以下命令啟動(dòng) Nginx 容器,同時(shí)將宿主機(jī)的 HTML 文件夾掛載到容器內(nèi):
sudo docker run --name my-nginx -p 80:80 -v ~/nginx-html:/usr/share/nginx/html -d nginx
在這個(gè)命令中,-v ~/nginx-html:/usr/share/nginx/html
將宿主機(jī)的 ~/nginx-html
目錄掛載到 Nginx 容器的 /usr/share/nginx/html
目錄中。
4.3 實(shí)時(shí)刷新數(shù)據(jù)
修改 ~/nginx-html/index.html
文件的內(nèi)容,Nginx 會(huì)自動(dòng)加載新的內(nèi)容。比如可以添加如下內(nèi)容:
<h1>Hello, Nginx! Updated!</h1>
保存文件后,刷新瀏覽器,即可看到更新的內(nèi)容。
五、使用 Nginx 的數(shù)據(jù)分析系統(tǒng)案例
在數(shù)據(jù)分析系統(tǒng)中,Nginx 可以用作靜態(tài)文件服務(wù)器和反向代理,以提高系統(tǒng)的性能和安全性。以下是一個(gè)簡(jiǎn)單的使用案例:
5.1 場(chǎng)景描述
假設(shè)我們有一個(gè)數(shù)據(jù)分析系統(tǒng),前端使用 React 構(gòu)建,后端使用 Node.js 提供 API。我們希望通過(guò) Nginx 將靜態(tài)文件和 API 請(qǐng)求分發(fā)到不同的服務(wù)。
5.2 Nginx 配置示例
server { listen 80; server_name analytics.example.com; # 靜態(tài)文件服務(wù) location / { root /usr/share/nginx/html; # 前端構(gòu)建的靜態(tài)文件路徑 index index.html; try_files $uri $uri/ /index.html; } # 反向代理到 Node.js 后端 location /api { proxy_pass http://localhost:3000; # Node.js 服務(wù)地址 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
六、性能優(yōu)化
在高并發(fā)場(chǎng)景中,優(yōu)化 Nginx 的性能是非常重要的。以下是一些常見(jiàn)的優(yōu)化方法:
6.1 調(diào)整工作進(jìn)程和連接數(shù)
根據(jù)服務(wù)器的 CPU 核心數(shù)調(diào)整 worker_processes
和 worker_connections
參數(shù):
worker_processes auto; # 自動(dòng)設(shè)置為 CPU 核心數(shù) worker_connections 2048; # 增加最大連接數(shù)
6.2 開啟緩存
通過(guò)啟用緩存,減輕后端服務(wù)器的壓力:
proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
6.3 壓縮傳輸
通過(guò)開啟 gzip 壓縮,減少數(shù)據(jù)傳輸量:
gzip on; gzip_types text/plain application/json application/javascript text/css; gzip_min_length 1000; # 只有大于1000字節(jié)的文件才進(jìn)行壓縮
總結(jié)
到此這篇關(guān)于Nginx常用命令和部署詳解以及實(shí)戰(zhàn)案例的文章就介紹到這了,更多相關(guān)Nginx 常用命令和部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于使用Keepalived實(shí)現(xiàn)Nginx的自動(dòng)重啟及雙主熱備高可用問(wèn)題
這篇文章主要介紹了使用Keepalived實(shí)現(xiàn)Nginx的自動(dòng)重啟及雙主熱備高可用,本文通過(guò)幾個(gè)問(wèn)題解析幫助大家學(xué)習(xí)Keepalived實(shí)現(xiàn)Nginx的自動(dòng)重啟的相關(guān)知識(shí),需要的朋友可以參考下2021-09-09nginx配置proxy_pass后返回404問(wèn)題以及Nginx host相關(guān)變量的說(shuō)明
這篇文章主要介紹了nginx配置proxy_pass后返回404問(wèn)題以及Nginx host相關(guān)變量的說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01配置nginx 重定向到系統(tǒng)維護(hù)頁(yè)面
今天抽時(shí)間給大家普及nginx 重定向到系統(tǒng)維護(hù)頁(yè)面的配置內(nèi)容,nginx重定向問(wèn)題說(shuō)起來(lái)也很簡(jiǎn)單,因?yàn)橹囟ㄏ蚝笾苯犹D(zhuǎn)到靜態(tài)頁(yè)面,不需要后續(xù)操作和記錄,所以直接301永久重定向。今天簡(jiǎn)單給大家介紹配置方法,一起看看吧2021-06-06Nginx轉(zhuǎn)發(fā)socket端口配置詳解
這篇文章主要介紹了Nginx轉(zhuǎn)發(fā)socket端口配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06