本文首發: 開發指南:如何在 CentOS 7 上安裝 Nginx
Nginx 讀做 engine x, 是一個免費的、開源的、高性能的 HTTP 和反向代理服務,主要負責負載一些訪問量比較大的站點。html
Nginx 能夠做爲一個獨立的 Web 服務,也能夠用來給 Apache 或是其餘的 Web 服務作反向代理。linux
相比於 Apache,Nginx 能夠處理更多的併發鏈接,並且每一個鏈接的內存佔用的很是小。nginx
本教程將會教您如何在 Centos 7 的服務器上安裝和管理 Nginx。centos
在開始閱讀此教程以前,請確保你是以擁有 sudo
權限的用戶來登陸的服務器,而且服務器中沒有 Apache 或是其餘服務正在使用 80(HTTP) 和 443(HTTPS) 端口上,防止端口被佔用,形成 Nginx 沒法正常啓動。瀏覽器
請按照下面的步驟,在 CentOS 中安裝 Nginx。安全
一、 EPEL 倉庫中有 Nginx 的安裝包。若是你尚未安裝過 EPEL,能夠經過運行下面的命令來完成安裝:服務器
sudo yum install epel-release
上面代碼的意思是以 sudo
權限運行安裝 epel-release,若是你當前登陸的用戶不是 root,則會提示你輸入密碼來運行,輸入密碼時是看不到輸入的內容的,因此不用擔憂,繼續輸入就行。而後回車繼續運行,後面的命令中若是包含 sudo
則都代表是剛提到的意思,再也不重複解釋。併發
二、 輸入如下命令來安裝 Nginx:post
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(回車)
便可繼續安裝。
三、 等到安裝完成之後,能夠經過如下命令來設置開機啓動和運行 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 server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2018-03-12 16:12:48 UTC; 2s ago Process: 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 process
四、 若是你的服務器開啓了防火牆,則須要同時打開 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 步 時發現沒法訪問,能夠自行百度一下如何放開這兩個端口。
五、 驗證 Nginx 是否成功啓動,能夠在瀏覽器中打開 http://YOUR_IP
,您將看到默認的 Nginx 歡迎頁面,相似於下圖所示:
注:Nginx 的默認歡迎頁有好幾種樣式,和你安裝的版本有關,因此你們只用關注這個頁面的大標題就好了 Welcome to 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 nginx
/etc/nginx/
目錄中。/etc/nginx/nginx.conf
。.conf
結尾,並存儲在 /etc/nginx/conf.d
目錄中。您能夠根據需求,建立任意多個獨立的配置文件。kaifazhinan.com
,那麼你的配置文件的應該是這樣的 /etc/nginx/conf.d/kaifazhinan.com.conf
,若是你在一個服務器中部署多個服務,固然你也能夠在文件名中加上 Nginx 轉發的端口號,好比 kaifazhinan.com.3000.conf
,這樣作看起來會更加友好。/etc/nginx/snippets
文件夾,在這裏面存放全部會被複用的代碼塊,而後在各個須要用到的 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