CentOS 版本:centos-release-8.1-1.1911.0.9.el8.x86_64
Nginx 版本:nginx/1.14.1
Nginx 介紹
Nginx 是開源、高性能、高可靠的 Web 和反向代理服務器,而且支持熱部署,幾乎可以做到 7 * 24 小時不間斷運行,即使運行幾個月也不需要重新啓動,還能在不間斷服務的情況下對軟件版本進行熱更新。性能是 Nginx 最重要的考量,其佔用內存少、併發能力強、能支持高達 5w 個併發連接數,最重要的是,Nginx 是免費的並可以商業化,配置使用也比較簡單。
Nginx 的最重要的幾個使用場景:
-
靜態資源服務,通過本地文件系統提供服務;
-
反向代理服務,延伸出包括緩存、負載均衡等;
-
API 服務,OpenResty ;
對於前端來說 Node.js 不陌生了,Nginx 和 Node.js 的很多理念類似,HTTP 服務器、事件驅動、異步非阻塞等,且 Nginx 的大部分功能使用 Node.js 也可以實現,但 Nginx 和 Node.js 並不衝突,都有自己擅長的領域。Nginx 擅長於底層服務器端資源的處理(靜態資源處理轉發、反向代理,負載均衡等),Node.js 更擅長上層具體業務邏輯的處理,兩者可以完美組合,共同助力前端開發。
下面我們着重學習一下 Nginx 的使用。
先下載centos
docker pull centos
我自己做好了鏡像 可以直接下載
運行
docker run -itd -p 8900:80 -p 8901:8080 --privileged --name centos centos /usr/sbin/init
加粗的內容要特別注意,不能遺忘
原因就是: 默認情況下,在第一步執行的是 /bin/bash,而因爲docker中的bug,無法使用systemctl
所以我們使用了 /usr/sbin/init 同時 --privileged 這樣就能夠使用systemctl了,但覆蓋了默認的 /bin/bash
進入容器
docker exec -it f870fe771dc4 /bin/bash
下載nginx
yum install nginx
來安裝 Nginx,然後我們在命令行中 nginx -v
就可以看到具體的 Nginx 版本信息,也就安裝完畢了。
安裝之後開啓 Nginx,如果系統開啓了防火牆,那麼需要設置一下在防火牆中加入需要開放的端口,下面列舉幾個常用的防火牆操作(沒開啓的話不用管這個):
systemctl start firewalld # 開啓防火牆
systemctl stop firewalld # 關閉防火牆
systemctl status firewalld # 查看防火牆開啓狀態,顯示running則是正在運行
firewall-cmd --reload # 重啓防火牆,永久打開端口需要reload一下
# 添加開啓端口,--permanent表示永久打開,不加是臨時打開重啓之後失效
firewall-cmd --permanent --zone=public --add-port=8888/tcp
# 查看防火牆,添加的端口也可以看到
firewall-cmd --list-all
然後設置 Nginx 的開機啓動:
systemctl enable nginx
啓動 Nginx (其他命令後面有詳細講解):
systemctl start nginx
然後訪問你的 IP,這時候就可以看到 Nginx 的歡迎頁面了~ Welcome to nginx! 👏
配置反向代理
反向代理是工作中最常用的服務器功能,經常被用來解決跨域問題,下面簡單介紹一下如何實現反向代理。
首先進入 Nginx 的主配置文件:
vim /etc/nginx/nginx.conf
端口轉換
80--->http://www.bilibili.com; 8080--->80