天天看點

Nginx 安裝配置教程

1.安裝 Nginx 的先決條件

依賴庫:GCC, PCRE, zlib, OpenSSL 。

* GCC (Nginx 由 C 語言編寫,是以需要在系統上安裝一個編譯工具) 基本上 Linux 自帶,可以通過指令 gcc 檢視是否安裝,顯示 no input files, 即為已安裝。

如果為 comand not found ,即未安裝。通過

apt-get install gcc
      

yum install gcc      

來安裝。

* PCRE庫(Nginx 的 Rewrite 子產品和 HTTP 子產品會使用到 PCRE 正規表達式文法)。通過

apt-get install libpcre3 pibpcre3-dev      
yum install pcre pcre-devel      

* zilb(在 Nginx 的各種子產品中需要使用 gzip 壓縮)。通過

apt-get install zlib1g zlig1g-dev      
yum install lib zlib-devel      

* OpenSSL (在 Nginx 中,如果伺服器提供安全網頁則會用到 OpenSSL 庫)。通過

apt-get install openssl libssl-dev      
yum install openssl openssl-dev       

2.通過源碼安裝 Nginx

在 /home 下建立一個 src 目錄并移動到目前目錄:

mkdir src && cd src      

下載下傳Nginx壓縮封包件

wget http://nginx.org/download/nginx-1.14.0.tar.gz      

官網位址如下,可以選擇自己需要的版本(穩定版,測試版等)

http://nginx.org/en/download.html

解壓

tar zxf nginx-1.14.0.tar.gz      

移動到解壓目錄,結構如下

Nginx 安裝配置教程

執行安裝

./configure      

./configure 進行程式驗證過程,以便确定系統包含所有必要的組成成分。

make      

make 對應用程式進行編譯,一個成功的 build 編譯應該會出現最後的資訊:

make[1]: leaving directory followed by the project source path.

make install      

make install 複制編譯後的檔案(也包括資源檔案)到安裝目錄。

3.啟動 Nginx

Nginx 的預設安裝目錄是 /usr/local/nginx,

通過

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf      

啟動 Nginx。

檢視程序是否啟動:

ps -ef | grep nginx      

4.控制 Nginx 服務

Nginx 屬于運作于背景的類型,即作為守護程式。是以啟動 Nginx 後螢幕并不會輸出任何資訊,這代表 Nginx 已經正确運作。我們來把 Nginx添加到系統服務中。

a. 為 Nginx 建立 init 腳本

init 腳本是作為啟動服務的腳本,可以通過一些指令來控制一個應用程式的 start、stop 或者其他操作。例如通過 /etc/init.d/httd start 開啟 http 服務

/etc/init.d/httpd start      

該指令和 service httpd start 是等效的。

我們來為 Nginx 建立 init 腳本,在 /etc/init.d/(在有些系統下,/etc/init.d/ 實際是 /etc/rc.d/init.d/ 的符号連結)下建立一個名為 nginx 的腳本:

vim nginx      

寫入下列内容:

#! /bin/sh
 
### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO
 
PATH=/opt/bin:/opt/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/sbin/nginx
NAME=nginx
DESC=nginx
 
test -x $DAEMON || exit 0
 
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi
 
set -e
 
case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /var/run/nginx.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /var/run/nginx.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /var/run/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/nginx.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
 
exit 0      

不同系統下内容不一樣,可以在 Nginx 官網找到具體内容的寫法。

https://www.nginx.com/resources/wiki/start/topics/examples/initscripts/

b. 安裝 Nginx 的 init 腳本

通過 chmod 指令來授予該腳本的可執行權限:

chmod +x /etc/init.d/nginx      

到此,我們便可以通過 /etc/init.d/nginx start 或 service nginx start 指令來啟動服務了。

c. 讓 Nginx 的 init 腳本在适當的運作級自動啟動

* 基于 Debian 系的釋出:

update-rc.d -f nginx defaults      

然後重新開機系統,運作

ps -ef | grep nginx      

檢視重新開機後 Nginx 是否自動啟動。

* 基于 Red Hat 系的釋出:

chkconfig --add nginx      

執行上述指令後,便可以檢驗該服務的運作級别:

chkconfig --list nginx      

至此,我們便完成了從安裝到配置 Nginx 自啟動的過程。