CentOS 上安裝 Nginx

菜就多努力呀n發表於2019-08-23
  1. Nginx 讀作 engine x, 是一個免費的、開源的、高效能的 HTTP 和反向代理服務,主要負責負載一些訪問量比較大的站點;
  2. Nginx 可以作為一個獨立的 Web 服務,也可以用來給 Apache 或是其他的 Web 服務做反向代理;
  3. 相比於 ApacheNginx 可以處理更多的併發連線,而且每個連線的記憶體佔用的非常小;
  4. 本教程將會教您如何在 Centos 7 的伺服器上安裝和管理 Nginx
  1. 確保可以用 sudo 許可權登入登陸伺服器;
  2. 確保沒有其他程式在佔用 Http80Https443,防止埠被佔用,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 服務:

    • 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.
    • 啟動 Nginxsudo 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 Fri 2019-08-23 14:36:29 CST; 5s ago
        Process: 1392 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
        Process: 1388 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
        Process: 1387 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
       Main PID: 1395 (nginx)
         CGroup: /system.slice/nginx.service
                 ├─1395 nginx: master process /usr/sbin/nginx
                 └─1396 nginx: worker process
  4. 如果你的伺服器開啟了防火牆,則需要同時開啟 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_Address},您將看到預設的 Nginx 歡迎頁面,類似於下圖所示:

    • CentOS 上安裝 Nginx
    • 注:Nginx 的預設歡迎頁有好幾種樣式,和你安裝的版本有關,所以大家只用關注這個頁面的大標題就行了 Welcome to nginx!
  1. 啟動 Nginxsudo systemctl start nginx
  2. 停止 Nginxsudo systemctl stop nginx
  3. 重啟 Nginxsudo systemctl restart nginx
  4. 修改 Nginx 配置後,重新載入:sudo systemctl reload nginx
  5. 設定開機啟動 Nginxsudo systemctl enable nginx
  6. 關閉開機啟動 Nginxsudo systemctl disable nginx
  1. 通過以上方式安裝的 Nginx,所有相關的配置檔案都在 /etc/nginx/ 目錄中;
  2. Nginx 的主配置檔案是 /etc/nginx/nginx.conf
  3. 為了使 Nginx 配置更易於維護,建議為每個服務(域名)建立一個單獨的配置檔案;
  4. 每一個獨立的 Nginx 服務配置檔案都必須以 .conf 結尾,並儲存在 /etc/nginx/conf.d 目錄中。您可以根據需求,建立任意多個獨立的配置檔案;
  5. 獨立的配置檔案,建議遵循以下命名約定,比如你的域名是 kaifazhinan.com,那麼你的配置檔案的應該是這樣的 /etc/nginx/conf.d/kaifazhinan.com.conf,如果你在一個伺服器中部署多個服務,當然你也可以在檔名中加上 Nginx 轉發的埠號,比如 kaifazhinan.com.3000.conf,這樣做看起來會更加友好;
  6. 如果你的配置中有很多重複的程式碼,那麼建議你建立一個 /etc/nginx/snippets 資料夾,在這裡面存放所有會被複用的程式碼塊,然後在各個需要用到的 Nginx 的配置檔案中引用進去,這樣可以更方便管理和修改;
  7. Nginx 日誌檔案(access.logerror.log )位於 /var/log/nginx/ 目錄中。建議為每個獨立的服務配置不同的訪問許可權和錯誤日誌檔案,這樣查詢錯誤時,會更加方便快捷;
  8. 你可以將要部署的程式碼檔案,儲存在任何你想的位置,但是一般推薦存放在下列位置中的其中一個:
    • /home/<user_name>/<site_name>
    • /var/www/<site_name>
    • /var/www/html/<site_name>
    • /opt/<site_name>
    • /usr/share/nginx/html
  1. 首先恭喜你,你已經成功的在 CentOS 7 上安裝了 Nginx 服務,你現在可以在你的伺服器中通過 Nginx 部署你的服務程式碼啦,如果你打算在伺服器中部署多個服務,你可能需要閱讀這篇文章 How To Set Up Nginx Server Blocks on CentOS 7(待翻譯)。
  2. 哦,對了,安全證照(HTTPS)是當今所有網站的『必備』功能。所以你可以閱讀這篇文章 Secure Nginx with Let's Encrypt on CentOS 7(待翻譯) 來學習如何通過 Let’s Encrypt SSL 生成免費的安全證照。
  1. 原文連結:2019 年如何在 CentOS 7 上安裝最新版 Nginx

刻意練習,日益精進。

相關文章