官术网_书友最值得收藏!

4.2 Nginx源碼編譯安裝

以Centos平臺編譯環境為例,安裝Make并編譯Gcc/GccDemo的方法如代碼清單4-1所示。

代碼清單4-1 GccDemo代碼

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++

Nginx重寫rewrite,需要安裝pcre,而Gzip壓縮需要安裝zlib,網絡轉發需要ssl設定源碼目錄為/usr/local/source。安裝pcre、zlib、ssl的方法如代碼清單4-2所示。

代碼清單4-2 Nginx插件安裝

------------pcre-----------------
cd /usr/local/source
wget http:// www.programming.cn/pcre/pcre-8.36.tar.gz
tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make
make install
-----------zlib--------------
wget http:// zlib.net/zlib-1.2.7.tar.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
make install
-----------ssl--------------
wget https:// www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1t.tar.gz

Nginx安裝的方法如代碼清單4-3所示。

代碼清單4-3 Nnigx安裝

wget http:// nginx.org/download/nginx-1.5.8.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2

下載Nginx包的頁面效果如圖4-2所示。

068-1

圖4-2 下載Nginx包

解壓Nginx包,如圖4-3所示。

069-1

圖4-3 解壓Nginx包

具體的Nginx參數配置,如代碼清單4-4所示。

代碼清單4-4 Nginx參數配置

./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=/opt/app/openet/zachary/pcre-8.36 \
--with-zlib=/opt/app/openet/zachary/zlib-1.2.7 \
--with-openssl=/opt/app/openet/zachary/openssl-1.0.1t
make
make install

其中,make用于編譯,它從Makefile中讀取指令,然后編譯;make install用于安裝,它也從Makefile中讀取指令,將Nginx安裝到指定的位置;configure命令用于檢測安裝平臺的目標特征,它定義了系統的各個方面,包括Nginx被允許使用的連接處理的方法,比如它會檢測是不是有CC或GCC(并不是需要CC或GCC,它是個shell腳本,執行結束時,它會創建一個Makefile文件)。

Nginx的configure命令支持以下參數。

  • --prefix=path:定義一個目錄,存放服務器上的文件,也就是Nginx的安裝目錄。默認使用/usr/local/nginx。
  • --sbin-path=path:設置Nginx的可執行文件的路徑,默認為prefix/sbin/nginx。
  • --conf-path=path:設置nginx.conf配置文件的路徑。Nginx允許使用不同的配置文件啟動,通過命令行中的-c選項實現。默認為prefix/conf/nginx.conf。
  • --pid-path=path:設置nginx.pid文件,將存儲主進程的序號。安裝完成后,可以隨時改變文件名,在nginx.conf配置文件中使用。默認情況下,文件名為prefix/logs/nginx.pid。
  • --error-log-path=path:設置主錯誤、警告和診斷文件的名稱。安裝完成后,可以隨時改變文件名,在nginx.conf配置文件中使用。默認情況下,文件名為prefix/logs/error.log。
  • --http-log-path=path:設置主請求HTTP服務器的日志文件的名稱。安裝完成后,可以隨時改變文件名,在nginx.conf配置文件中使用。默認情況下,文件名為prefix/logs/access.log。
  • --user=name:設置Nginx工作進程的用戶。安裝完成后,可以隨時更改名稱,在nginx.conf配置文件中使用。默認用戶名為nobody。
  • --group=name:設置Nginx工作進程的用戶組。安裝完成后,可以隨時更改名稱,在nginx.conf配置文件中使用。默認為非特權用戶。
  • --with-select_module --without-select_module:啟用或禁用構建一個模塊來允許服務器使用select()方法。如果平臺不支持kqueue、epoll、rtsig或/dev/poll,該模塊將自動建立。
  • --with-poll_module --without-poll_module:啟用或禁用構建一個模塊來允許服務器使用poll()方法。如果平臺不支持kqueue、epoll、rtsig或/dev/poll,該模塊將自動建立。
  • --without-http_gzip_module:不編譯壓縮的HTTP服務器的響應模塊。編譯并運行此模塊需要zlib庫。
  • --without-http_rewrite_module:不編譯重寫模塊。編譯并運行此模塊需要PCRE庫支持。
  • --without-http_proxy_module:不編譯http_proxy模塊。
  • --with-http_ssl_module:使用HTTPS協議模塊。默認情況下,該模塊沒有被構建。必須建立并運行此模塊的OpenSSL庫。
  • --with-pcre=path:設置PCRE庫的源碼路徑。PCRE庫的源碼(版本4.4-8.30)需要從PCRE網站下載并解壓。其余工作是由Nginx的./ configure和make來完成的。
  • --with-pcre-jit:編譯PCRE,包含just-in-time compilation(即PCRE 1.1.12中的pcre_jit指令)。
  • --with-zlib=path:設置zlib庫的源碼路徑。要從zlib(版本1.1.3~1.2.5)下載并解壓。其余的工作是由Nginx的./ configure和make完成的。ngx_http_gzip_module模塊需要使用zlib。
  • --with-cc-opt=parameters:設置額外的參數,并將被添加到CFLAGS變量中。例如,當在FreeBSD上使用PCRE庫時需要使用--with-cc-opt="-I /usr/local/include;要增加select()支持的文件數量時需要使用--with-cc-opt="-D FD_SETSIZE=2048"。
  • --with-ld-opt=parameters:設置附加的參數,用于鏈接期間。例如,當在FreeBSD下使用該系統的PCRE庫時,應指定--with-ld-opt="-L /usr/local/lib"。

其中相關路徑說明如下:

  • --with-pcre=/usr/src/source/pcre-8.36:pcre-8.36的源碼路徑。
  • --with-zlib=/usr/src/source/zlib-1.2.7:zlib-1.2.7的源碼路徑。

安裝成功后,/usr/local/nginx目錄如下:

fastcgi.conf             koi-win               nginx.conf.default
fastcgi.conf.default     logs                  scgi_params
fastcgi_params           mime.types            scgi_params.default
fastcgi_params.default   mime.types.default    uwsgi_params
html                     nginx                 uwsgi_params.default
koi-utf                  nginx.conf            win-utf

注意

Nginx默認端口是80,啟動之前應先檢查80端口的使用情況,使用的指令是netstat -ano|grep 80,如果查不到結果則說明該端口未占用,反之,有如下兩種處理方式:

  • 更改Nginx默認80端口,通過指令whereis nginx.conf找到默認配置文件,更改方式為listen 80 default_server;
  • 找到占用80端口的應用,然后kill掉該應用以釋放80端口。

溫馨提示:80端口默認可以隱藏,例如:zachary.sh.cn:80等同于zachary.sh.cn,同理80端口也非常容易受到攻擊。建議更換默認端口。

主站蜘蛛池模板: 都匀市| 深泽县| 石门县| 天津市| 揭东县| 巧家县| 体育| 南川市| 封开县| 治县。| 灵石县| 金溪县| 嘉峪关市| 金堂县| 仙居县| 景洪市| 松溪县| 云龙县| 云林县| 瓮安县| 彩票| 抚松县| 武川县| 凌云县| 武威市| 梅河口市| 当涂县| 英山县| 普定县| 太保市| 勐海县| 汉源县| 分宜县| 宜城市| 仁化县| 峡江县| 纳雍县| 亚东县| 金堂县| 新沂市| 维西|