Linux中安裝Nginx實例分析

使用系統二進制源方式安裝

在ubuntu/debian系

sudo?apt-get?install?nginx

或者redhat/centos系

sudo?yum?install?nginx

這種方式最簡單的,最快捷的方式,但是不是最好的方式,下面我們來說這種主要問題。

優點

  • 所有安裝二進制依賴已經處理好了,不用擔心兼容性問題,開箱即用

  • nginx的連接配置,用戶權限這個都不用處理,已經幫你寫好這塊了

  • 不用擔心nginx bug維護升級問題,直接獲取最新系統就可以了

  • 卸載簡單,直接一個命令即可

  • 日志維護簡單,自動截斷當天日志,壓縮保存

缺點

  • 不能自主選擇安裝版本

  • 不能自主選擇編譯的模塊

  • 擴展功能變得很麻煩,需要重新編譯

  • 目類結構復雜,配置文件在/etc/下,部署文件在/var/www

  • 重啟服務,修改配置都需要root權限

  • 性能差一點編譯安裝

如果你是一個linux新手,絕對推薦使用這中方式安裝,不用考慮編譯依賴問題,直接安裝完就可以使用。但是如果你這個服務器是用于生產環境正在開發逐步完善的過程,不推薦使用這種方式。將來可能會添加第三方模塊,到時肯定要編譯安裝(下面會說到)。在重啟服務器的時候,不要使用root用戶,而是使用sudo短暫獲取root。如果你這條服務器都是用來部署一些靜態文件,主要做一些web空間,平常主要用ftp工具部署文件,用這種方式肯定沒什么問題的。

編譯安裝

優缺點,我就不寫了,基本就是上面的顛倒過來就可以了。使用這種方法安裝,都必須懂一點linux編譯知識,linux中度用戶才可以駕馭。我看見網上大多數教程,都是將編譯依賴直接裝在/usr/local/這種方式并不好。如果將來我們要卸載這些依賴,發現非常麻煩。并不是直接在目類下直接刪除就可以完事的,有些linux發行版本,會將安裝文件,寫入配置文件中,這些配置文件有不知道哪里找。如果依賴版本影響到其他軟件,怎么處理版本問題。我們只想安裝nginx,結果延申出一大堆問題。

編譯環境準備

在開始之前,保證你的linux準備了gcc、make、wget,g++ 這些軟件。

創建一個目類用來存放下載文件,進入目錄中下載依賴庫源文件

下載openssl主要用于ssl模塊加密,支持htps

wget?https://www.openssl.org/source/openssl-1.0.2s.tar.gz

下載pcre來實現對地址重定向,地址重寫功能和localtion指令以及正則表達式的支持

wget?https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

下載zlib gzip壓縮模塊

wget?https://zlib.net/zlib-1.2.11.tar.gz

下載nginx

wget?http://nginx.org/download/nginx-1.17.1.tar.gz

使用tar 解壓所有的文件

ls?*.tar.gz?|?xargs?-n1?tar?xzvf

編譯選項

使用./configure設置各種nginx參數的腳本,包括源和配置文件的路徑,編譯器選項,連接處理方法和模塊列表。該腳本通過創建編譯代碼和安裝nginx開源所需的makefile來完成。

    參數 描述
    –prefix= nginx安裝目錄,以及有其他配置腳本選項的路徑設置的所有相對路徑的基本位置。默認值/usr/local/nginx
    –sbin-path= nginx二進制執行文件的名稱,默認值:

    /sbin/nginx</prefix> </td></path> </td></tr> <tr> <td>–conf-path=<path></path> </td> <td>nginx配置文件的名稱。但是,您可以通過在nginx命令行上使用選項指定其他文件來始終在啟動時覆蓋此值。默認值:<prefix> conf / nginx.conf-c <filename></filename></prefix> </td> </tr> <tr> <td>–pid-path=<path></path> </td> <td>nginx.pid文件的名稱,用于存儲nginx主進程的進程id 。安裝后,可以使用nginx配置文件中的pid指令更改文件名的路徑。默認值:<prefix> /logs/nginx.pid</prefix> </td> </tr> <tr> <td>–error-log-path=<path></path> </td> <td>error,warn和診斷數據的日志文件的名稱。安裝后,可以使用nginx配置文件中的error_log指令更改文件名。默認值:<prefix> /logs/error.log</prefix> </td> </tr> <tr> <td>–http-log-path=<path></path> </td> <td>http服務器請求的主日志文件的名稱。安裝后,始終可以使用nginx配置文件中的access_log指令更改文件名。默認值:<prefix> /logs/access.log</prefix> </td> </tr> <tr> <td>–user=<name></name> </td> <td>nginx運行進程的擁有者。安裝后,可以使用nginx配置文件中的user指令更改名稱。默認:nobody</td> </tr> <tr> <td>–group=name</td> <td>nginx運行進程的擁有者用戶組。安裝后,可以使用nginx配置文件中的user指令更改名稱。默認值:–user選項設置的值</td> </tr> <tr> <td>–with-pcre=<path></path> </td> <td>pcre庫源代碼的路徑,這是位置指令和rewrite模塊中正則表達式支持所必需的</td> </tr> <tr> <td>–with-pcre-jit</td> <td>使用“即時編譯”支持(pcre_jit指令)構建pcre庫</td> </tr> <tr> <td>–with-zlib=<path></path> </td> <td>zlib庫的源代碼路徑,gzip模塊需要該路徑</td> </tr> <tr> <td>–with-http_ssl_modul</td> <td>啟用https支持</td> </tr> <tr> <td>–with-http_v2_module</td> <td>開啟 http/2請求支持</td> </tr> </tbody> </table> <p>還要太多編譯參數我就不一一列舉,有興趣的同學可以自己去<br></p> <p>參看</p> <p>編譯安裝<br></p> <pre class="brush:bash;">./configure? ??–with-openssl=../openssl-1.0.2s? ??–with-pcre=../pcre-8.43? ??–with-zlib=../zlib-1.2.11? ??–with-pcre-jit?–user=admin? ??–prefix=/home/admin/nginx? ??–with-http_ssl_module? ??–with-http_v2_module

    輸出以下信息,說明依賴沒問題

    configuration?summary ?+?using?pcre?library:?../pcre-8.43 ?+?using?openssl?library:?../openssl-1.0.2s ?+?using?zlib?library:?../zlib-1.2.11 ? ?nginx?path?prefix:?"/home/admin/nginx" ?nginx?binary?file:?"/home/admin/nginx/sbin/nginx" ?nginx?modules?path:?"/home/admin/nginx/modules" ?nginx?configuration?prefix:?"/home/admin/nginx/conf" ?nginx?configuration?file:?"/home/admin/nginx/conf/nginx.conf" ?nginx?pid?file:?"/home/admin/nginx/logs/nginx.pid" ?nginx?error?log?file:?"/home/admin/nginx/logs/error.log" ?nginx?http?access?log?file:?"/home/admin/nginx/logs/access.log" ?nginx?http?client?request?body?temporary?files:?"client_body_temp" ?nginx?http?proxy?temporary?files:?"proxy_temp" ?nginx?http?fastcgi?temporary?files:?"fastcgi_temp" ?nginx?http?uwsgi?temporary?files:?"uwsgi_temp" ?nginx?http?scgi?temporary?files:?"scgi_temp"

    編譯

    make

    安裝

    make?install

    設置權限

    因為linux設置普通用戶,不能占用1024一下的端口,直接啟動nginx會出現權限不足的錯誤。將nginx分配給root用戶,在分配特殊權限。

    sudo?chown?root?nginx sudo?chmod?u+s?nginx

    ? 版權聲明
    THE END
    喜歡就支持一下吧
    點贊12 分享
    欧美久久一级内射wwwwww.| 99久久777色| 一极黄色视频久久网站| 精品久久久久久无码不卡| 亚洲AV无码久久精品成人| 久久精品一区二区| 欧美大战日韩91综合一区婷婷久久青草| 久久精品国产99久久香蕉| 99久久国产宗和精品1上映| 91精品国产色综合久久| 欧美日韩中文字幕久久久不卡| 久久久久久伊人高潮影院| 99久久免费国产特黄| 久久久久综合国产欧美一区二区 | 精品久久香蕉国产线看观看亚洲 | 九九精品99久久久香蕉| 国产精品成人99久久久久91gav| 性做久久久久久久久久久| av午夜福利一片免费看久久| 色婷婷综合久久久久中文字幕| 国产精品久久久久影院嫩草| 久久无码专区国产精品发布| 91超碰碰碰碰久久久久久综合| 久久无码中文字幕东京热| 久久99国产精品成人欧美| 久久国产精品久久| 久久发布国产伦子伦精品| 亚洲AV无码久久| 久久久久av无码免费网 | 久久午夜伦鲁片免费无码| 久久噜噜久久久精品66| 久久精品99无色码中文字幕| 99久久精品国产毛片| 久久青青草原精品影院| www.久久热| 久久久久久久久无码精品亚洲日韩 | 久久se精品一区二区影院 | 久久精品国产亚洲AV麻豆网站| 中文字幕无码免费久久| 日韩人妻无码一区二区三区久久99 | 99久久精品免费看国产免费|