新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Nginx完全教程(必讀)

        Nginx完全教程(必讀)

        作者: 時間:2016-10-08 來源:網絡 收藏

        --with-sha1-opt=OPTIONS - Set additional options for sha1 building.

        --with-sha1-asm - Use sha1 assembler sources.

        --with-zlib=DIR - Set path to zlib library sources.

        --with-zlib-opt=OPTIONS - Set additional options for zlib building.

        --with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU, valid values are: pentium, pentiumpro

        --with-openssl=DIR - Set path to OpenSSL library sources

        --with-openssl-opt=OPTIONS - Set additional options for OpenSSL building

        --with-debug - 啟用調試日志

        --add-module=PATH - Add in a third-party module found in directory PATH

        在不同版本間,選項可能會有些許變化,請總是使用 ./configure --help 命令來檢查一下當前的選項列表。

        示例 (最好能在同一行):

        ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-4.4 --with-zlib=../zlib-1.1.3

        Ubuntu/debian 上的示例,需要預先安裝 libgcrypt11-dev, libpcre3-dev 和 libssl-dev (選擇 --with-md5 或 --with-sha1 中的一個, 但不能都選; 在 debian 和 ubuntu 上, 它們應該都指向 /usr/lib)

        ./configure --with-openssl=/usr/lib/ssl/ --with-md5=/usr/lib

        Ubuntu Edgy 的一個 0.5.2 版本的 .deb 包可以在這里下載: nginx_0.5.2-1_i386.deb.

        (注: 根據 October 2006 message 的消息,md5 在一個現在不再使用的 http 緩存模塊中用到,而 sha1 用在一個未完成的 mysql 庫模塊,所以它們當前都不是必須的)

        運行和控制 Nginx - 命令行參數和信號

        不像許多其他軟件系統,Nginx 僅有數個命令行參數,完全通過配置文件來配置(想象一下)。

        · 選項

        · 示例

        · 使用信號加載新的配置

        · 平滑升級到新的二進制代碼

        選項

        -c /path/to/config> 為 Nginx 指定一個配置文件,來代替缺省的。

        -t 不運行,而僅僅測試配置文件。nginx 將檢查配置文件的語法的正確性,并嘗試打開配置文件中所引用到的文件。

        -v 顯示 nginx 的版本。

        -V 顯示 nginx 的版本,編譯器版本和配置參數。

        示例

        /usr/bin/nginx -t -c ~/mynginx.conf

        通過系統的信號控制 Nginx

        可以使用信號系統來控制主進程。默認,nginx 將其主進程的 pid 寫入到 /usr/local/nginx/logs/nginx.pid 文件中。通過傳遞參數給 ./configure 或使用 pid 指令,來改變該文件的位置。

        主進程可以處理以下的信號:

        TERM, INT

        快速關閉

        QUIT

        從容關閉

        HUP

        重載配置

        用新的配置開始新的工作進程

        從容關閉舊的工作進程

        USR1

        重新打開日志文件

        USR2

        平滑升級可執行程序。

        WINCH

        從容關閉工作進程

        盡管你不必自己操作工作進程,但是,它們也支持一些信號:

        TERM, INT

        快速關閉

        QUIT

        從容關閉

        USR1

        重新打開日志文件

        使用信號加載新的配置

        Nginx 支持幾個信號,能在它運行時控制其操作。其中最普通的是 15 ,用來中止運行的進程:

        # ps aux | egrep '(PID|nginx)'USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 2213 0.0 0.0 6784 2036 ? Ss 03:01 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

        # kill -15 2213

        而最有趣的是能平滑改變 nginx 配置的選項(請注意,在重載前,要先測試一下配置文件):

        # nginx -t -c /etc/nginx/nginx.conf2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf syntax is ok2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf was tested successfully

        # ps aux | egrep '(PID|nginx)'

        USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

        root 2213 0.0 0.0 6784 2036 ? Ss 03:01 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

        # kill -HUP 2213

        當 nginx 接收到 HUP 信號,它會嘗試先解析配置文件(如果指定配置文件,就使用指定的,否則使用默認的),成功的話,就應用新的配置文件(例如:重新打開日志文件或監聽的套接 字)。之后,nginx 運行新的工作進程并從容關閉舊的工作進程。通知工作進程關閉監聽套接字但是繼續為當前連接的客戶提供服務。所有客戶端的服務完成后,舊的工作進程被關閉。 如果新的配置文件應用失敗,nginx 將繼續使用舊的配置進行工作。

        平滑升級到新的二進制代碼

        你可以在不中斷服務的情況下 - 新的請求也不會丟失,使用新的 nginx 可執行程序替換舊的(當升級新版本或添加/刪除服務器模塊時)。

        首先,使用新的可執行程序替換舊的(最好做好備份),然后,發送 USR2 (kill -USR2 pid)信號給主進程。主進程將重命名它的 .pid 文件為 .oldbin (比如:/usr/local/nginx/logs/nginx.pid.oldbin),然后執行新的可執行程序,依次啟動新的主進程和新的工作進程:

        PID PPID USER %CPU VSZ WCHAN COMMAND33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx33134 33126 nobody 0.0 1368 kqread nginx: worker process (nginx)

        33135 33126 nobody 0.0 1380 kqread nginx: worker process (nginx)

        33136 33126 nobody 0.0 1368 kqread nginx: worker process (nginx)

        36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx

        36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 渭源县| 汉沽区| 新田县| 柯坪县| 林甸县| 桓仁| 常山县| 囊谦县| 西城区| 泸水县| 巴塘县| 康乐县| 芦山县| 绿春县| 蓝田县| 思南县| 当雄县| 南丹县| 海盐县| 武川县| 定襄县| 汉源县| 洮南市| 麻阳| 禹城市| 洪洞县| 积石山| 临颍县| SHOW| 修武县| 安康市| 通州市| 江安县| 乌鲁木齐县| 香港 | 长宁区| 新乡县| 红原县| 甘德县| 临夏市| 三河市|