2019 年如何在 CentOS 7 上安装最新版 Nginx
本文首發:開發指南:如何在 CentOS 7 上安裝 Nginx
Nginx 讀作 engine x, 是一個免費的、開源的、高性能的 HTTP 和反向代理服務,主要負責負載一些訪問量比較大的站點。
Nginx 可以作為一個獨立的 Web 服務,也可以用來給 Apache 或是其他的 Web 服務做反向代理。
相比于 Apache,Nginx 可以處理更多的并發連接,而且每個連接的內存占用的非常小。
本教程將會教您如何在 Centos 7 的服務器上安裝和管理 Nginx。
開始前的準備
在開始閱讀此教程之前,請確保你是以擁有 sudo 權限的用戶來登錄的服務器,并且服務器中沒有 Apache 或是其他服務正在使用 80(HTTP) 和 443(HTTPS) 端口上,防止端口被占用,造成 Nginx 無法正常啟動。
在 CentOS 中安裝 Nginx
請按照下面的步驟,在 CentOS 中安裝 Nginx。
1、 EPEL 倉庫中有 Nginx 的安裝包。如果你還沒有安裝過 EPEL,可以通過運行下面的命令來完成安裝:
sudo yum install epel-release上面代碼的意思是以 sudo 權限運行安裝 epel-release,如果你當前登錄的用戶不是 root,則會提示你輸入密碼來運行,輸入密碼時是看不到輸入的內容的,所以不用擔心,繼續輸入就行。然后回車繼續運行,后面的命令中如果包含 sudo 則都表明是剛提到的意思,不再重復解釋。
2、 輸入以下命令來安裝 Nginx:
sudo yum install nginx如果這是您第一次從 EPEL 倉庫中安裝軟件,yum 可能會提示您導入 EPEL GPG key:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <epel@fedoraproject.org>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-9.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Is this ok [y/N]:類似于上面的內容,遇到這種情況,輸入 y,然后 Enter(回車) 即可繼續安裝。
3、 等到安裝完成以后,可以通過以下命令來設置開機啟動和運行 Nginx 服務:
設置 Nginx 開機啟動:
sudo systemctl enable nginx運行以上命令以后,會輸出類似以下的內容,表示創建了一個軟連接來關聯 Nginx,不用擔心,并不是報錯了,下一步就可以啟動 Nginx 了。
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.啟動 Nginx:
sudo systemctl start nginx通過運行以下命令,來檢查 Nginx 的運行狀態:
sudo systemctl status nginx然后會輸出類型下面的內容
● nginx.service - The nginx HTTP and reverse proxy serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2018-03-12 16:12:48 UTC; 2s agoProcess: 1677 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)Process: 1675 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)Process: 1673 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 1680 (nginx)CGroup: /system.slice/nginx.service├─1680 nginx: master process /usr/sbin/nginx└─1681 nginx: worker process4、 如果你的服務器開啟了防火墻,則需要同時打開 80(HTTP)和 443(HTTPS)端口
通過下面的命令來打開這兩個端口:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload國內的服務器廠商,安全組也可能會默認屏蔽這兩個端口,比如 阿里云 和 騰訊云,如果在 第 5 步 時發現無法訪問,可以自行百度一下如何放開這兩個端口。
5、 驗證 Nginx 是否成功啟動,可以在瀏覽器中打開 http://YOUR_IP,您將看到默認的 Nginx 歡迎頁面,類似于下圖所示:
注:Nginx 的默認歡迎頁有好幾種樣式,和你安裝的版本有關,所以大家只用關注這個頁面的大標題就行了 Welcome to nginx!
通過 systemctl 管理 Nginx
你可以像管理其他服務那樣管理 Nginx。
啟動 Nginx
sudo systemctl start nginx停止 Nginx
sudo systemctl stop nginx重啟 Nginx
sudo systemctl restart nginx修改 Nginx 配置后,重新加載
sudo systemctl reload nginx設置開機啟動 Nginx
sudo systemctl enable nginx關閉開機啟動 Nginx
sudo systemctl disable nginxNginx 的配置文件和最佳實踐
- 通過以上方式安裝的 Nginx,所有相關的配置文件都在 /etc/nginx/ 目錄中。
- Nginx 的主配置文件是 /etc/nginx/nginx.conf。
- 為了使 Nginx 配置更易于維護,建議為每個服務(域名)創建一個單獨的配置文件。
- 每一個獨立的 Nginx 服務配置文件都必須以 .conf 結尾,并存儲在 /etc/nginx/conf.d 目錄中。您可以根據需求,創建任意多個獨立的配置文件。
- 獨立的配置文件,建議遵循以下命名約定,比如你的域名是 kaifazhinan.com,那么你的配置文件的應該是這樣的 /etc/nginx/conf.d/kaifazhinan.com.conf,如果你在一個服務器中部署多個服務,當然你也可以在文件名中加上 Nginx 轉發的端口號,比如 kaifazhinan.com.3000.conf,這樣做看起來會更加友好。
- 如果你的配置中有很多重復的代碼,那么建議你創建一個 /etc/nginx/snippets 文件夾,在這里面存放所有會被復用的代碼塊,然后在各個需要用到的 Nginx 的配置文件中引用進去,這樣可以更方便管理和修改。
- Nginx 日志文件(access.log 和 error.log )位于 /var/log/nginx/ 目錄中。建議為每個獨立的服務配置不同的訪問權限和錯誤日志文件,這樣查找錯誤時,會更加方便快捷。
-
你可以將要部署的代碼文件,存儲在任何你想的位置,但是一般推薦存放在下列位置中的其中一個:
- /home/<user_name>/<site_name>
- /var/www/<site_name>
- /var/www/html/<site_name>
- /opt/<site_name>
- /usr/share/nginx/html
總結
首先恭喜你,你已經成功的在 CentOS 7 上安裝了 Nginx 服務,你現在可以在你的服務器中通過 Nginx 部署你的服務代碼啦,如果你打算在服務器中部署多個服務,你可能需要閱讀這篇文章 How To Set Up Nginx Server Blocks on CentOS 7(待翻譯)。
哦,對了,安全證書(HTTPS)是當今所有網站的“必備”功能。所以你可以閱讀這篇文章 Secure Nginx with Let's Encrypt on CentOS 7(待翻譯) 來學習如何通過 Let’s Encrypt SSL 生成免費的安全證書。
期待下次與你相見 : )
本文首發:開發指南:如何在 CentOS 7 上安裝 Nginx總結
以上是生活随笔為你收集整理的2019 年如何在 CentOS 7 上安装最新版 Nginx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces round 110
- 下一篇: mybatis-generator运行报