nginx 安裝

Nginx安裝

本文基於CentOS7系統

安裝前的環境準備

  • 主要是編譯環境的準備,gcc, make,g++等
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++

確定安裝位置

  • 可以是任何目錄,這裏選擇/usr/local/src爲安裝目錄
cd /usr/local/src

安裝PCRE

  • PCRE下載地址:ftp.csx.cam.ac.uk/pub/software/programming/pcre/
  • PCRE版本有PCRE2和PCRE兩個大版本,有時PCRE2會導致nginx make時報錯,可更換PCRE版本
    這裏選擇pcre-8
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz 
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure
make
make install

安裝zlib庫

  • 到http://zlib.net 下載最新的zlib包
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

安裝SSL

  • 查看本機是否已安裝好openssl,若沒有,則進行安裝
cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar -zxvf openssl-1.1.0e.tar.gz

安裝Nginx

  • nginx有穩定版和開發版兩個版本,根據我們需求自由選擇。
  • 我們將/usr/local/nginx作爲nginx的安裝目錄
cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2

./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=/usr/local/src/pcre-8.42 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.0e

make
make install
  • 安裝成功後,/usr/local/nginx目錄內容如下:
    nginx 安裝

nginx啓動關閉

  • 啓動,查看端口
/usr/local/nginx/nginx
ss -lnut
  • 從容關閉,處理所有請求後關閉
ps -ef |grep nginx
kill -QUIT  nginx主進程號
  • 快速停止,立即關閉
ps -ef |grep nginx
kill -TERM nginx主進程號 
  • 強制停止
ps -ef|grep nginx
kill -9 nginx主進程號
  • 重新加載配置文件
/usr/local/nginx/nginx -s reload

注意:在編譯過程中可能會報ssl錯誤,如:

/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127

出錯是因爲Nginx在編譯時並不能在/usr/local/ssl/.openssl/ 這個目錄找到對應的文件,其實我們打開/usr/local/ssl/這個目錄可以發現這個目錄下是沒有.openssl目錄的,因此我們修改Nginx編譯時對openssl的路徑選擇就可以解決這個問題了,解決方法:

打開nginx源文件下的/usr/local/src/nginx-1.9.9/auto/lib/openssl/conf文件,找到如下代碼:


CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"

將 .openssl刪掉,保存,再次編譯即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章