Nginx的安裝
安裝Nginx之前,需要先獲取Nginx的安裝文件。我們可以在http://nginx.org/en/download.html獲取各個版本的Nginx安裝文件。大家可以按照自己的需求自行下載相應的安裝文件。

Windows版本的安裝
Nginx的Windows版本安裝比較簡單。下載完安裝包之后解壓縮即可使用。如果你需要在命令行窗口執行nginx命令,你還需要將nginx的解壓目錄加入環境變量。
#Windows平台下相關操作
#step1:首先cd到nginx的安裝目錄,最好不要將安裝目錄加到環境變量,會出現不必要的問題。(有條件最好在Linux環境下操作)
start nginx 或者 nginx.exe //啟動nginx
nginx.exe -s stop //立即停止nginx服務
nginx.exe -s quit //有序停止nginx
nginx.exe -s reload //修改配置后加載新的配置
nginx.exe -s reopen
Linux版本的安裝
Linux版本的Nginx推薦使用源代碼安裝。
1. 環境准備
為了編譯Nginx源代碼,我們需要標准的GCC編譯器。GCC的全稱為GNUCompiler Collection,其由GNU開發,並以GPL及LGPL許可證發行,是自由的類UNIX及蘋果電腦Mac OS X操作系統的標准編譯器。因為GCC原本只能處理C語言,所以原名為GNU C語言編譯器,后來得到快速擴展,可處理C++、Fortran、Pascal、Objective-C、Java以及Ada等其他語言。
除此之外,我們還需要Automake工具,以完成自動創建Makefile的工作。
由於Nginx的一些模塊還需要依賴其他第三方庫,通常有pcre庫(支持rewrite模塊)、zlib庫(支持gzip模塊)和openssl庫(支持ssl模塊)等。所以在編譯Nginx源代碼前還需要安裝這些這些庫。
#gcc安裝
yum -y install gcc-c++
#pcre安裝
yum -y install pcre pcre-devel
#zlib安裝
yum -y install zlib zlib-devel
#OpenSSL安裝
yum -y install openssl openssl-devel
前面3個就不說了,很多軟件都會依賴到的包。需要安裝OpenSSL是因為后期nginx可能需要配置https,因此最好提前准備好。
在進行上面的安裝之前,最好使用下面的命令看下這些軟件包是否已經安裝過了。
yum list installed | grep ***
到此安裝環境就准備好了。
2. 源代碼編譯
Nginx的編譯安裝很簡單,在Linux下建議下載tar包進行安裝。
#解壓tar包
tar -zxvf nginx-1.12.2.tar.gz
#配置安裝路徑等其他配置,默認安裝目錄是/usr/local/nginx
./configure
make
make install
#查看版本
nginx -v
至此,Nginx的安裝就已經結束了。其實在上面的configure命令執行時我們是可以配置很多參數的,上面的安裝中我們全部使用的是Nginx的默認配置。下面列舉幾個configure命令的常見配置,比較完整的配置項的中文含義請參見這篇博客。
| 配置項 | 含義 |
|---|---|
| --prefix=PATH | 定義服務器文件的完整路徑,該路徑同時也是configure命令設置的 相對路徑(除類庫源文件外)以及nginx.conf文件定義的相對路徑的基准路徑。其默認 值是/usr/local/nginx。 |
| --sbin-path=PATH | 設置nginx可執行文件的完整路徑,該路徑僅在安裝期間使用, 默認路徑為*prefix*/sbin/nginx。 |
| --conf-path=PATH | 設置配置文件nginx.conf的完整路徑。如有必要,總是可以 在nginx啟動時通過命令行參數-c*file*指定一個不同的配置文件路徑。 默認路徑為*prefix*/conf/nginx.conf。 |
| --error-log-path=PATH | 設置記錄主要錯誤、警告以及調試信息日志的完整路徑。安裝完成后, 該路徑總是可以在nginx.conf文件中用 error_log 指令來修改。 默認路徑為*prefix*/logs/error.log。 |
| --pid-path=PATH | 設置nginx.pid文件的完整路徑,該文件存儲了主進程的進程ID。安裝完成后, 該路徑總是可以在nginx.conf文件中用 pid指令來修改。 默認路徑為*prefix*/logs/nginx.pid。 |
Configure命令還有很多配置參數,可以通過./configure --help查看。其中:
- with開頭的表示該模塊默認是未開啟的,可以使用
--with開啟。 - without開頭的表示該模塊默認是啟用的,可以使用
--without禁用。 - 第三方模塊使用
--add-module=PATH添加。如果支持動態加載,使用--add-dynamic-module=PATH添加。
一個配置命令的列子如下:
./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
3.一些常用命令
#使用-c可以自定義指定Nginx的配置問價,默認的是安裝目錄下的配置
nginx -c /usr/local/nginx/conf/nginx.conf
nginx -s stop
nginx -s quit
kill -9 PID
#重新加載配置
nginx -s reload
Nginx卸載
1.首先輸入命令 ps -ef | grep nginx檢查一下nginx服務是否在運行。
[root@localhost /]# ps -ef |grep nginx
root 3163 2643 0 14:08 tty1 00:00:00 man nginx
root 5427 1 0 14:50 ? 00:00:00 nginx: master process nginx
nginx 5428 5427 0 14:50 ? 00:00:00 nginx: worker process
root 5532 2746 0 14:52 pts/0 00:00:00 grep --color=auto nginx
2.停止Nginx服務
[root@localhost /]# /usr/sbin/nginx -s stop
[root@localhost /]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1261/sshd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1261/sshd
3.查找、刪除Nginx相關文件
- 查看Nginx相關文件:
whereis nginx
[root@localhost /]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
- find查找相關文件
[root@localhost /]# find / -name nginx
/usr/lib64/perl5/vendor_perl/auto/nginx
/usr/lib64/nginx
/usr/share/nginx
/usr/sbin/nginx
/etc/logrotate.d/nginx
/etc/nginx
/var/lib/nginx
/var/log/nginx
- 依次刪除find查找到的所有目錄:rm -rf /usr/sbin/nginx
4.再使用yum清理
[root@localhost /]# yum remove nginx
依賴關系解決
======================================================================================================
Package 架構 版本 源 大小
======================================================================================================
正在刪除:
nginx x86_64 1:1.12.2-3.el7 @epel 1.5 M
為依賴而移除:
nginx-all-modules noarch 1:1.12.2-3.el7 @epel 0.0
nginx-mod-http-geoip x86_64 1:1.12.2-3.el7 @epel 21 k
nginx-mod-http-image-filter x86_64 1:1.12.2-3.el7 @epel 24 k
nginx-mod-http-perl x86_64 1:1.12.2-3.el7 @epel 54 k
nginx-mod-http-xslt-filter x86_64 1:1.12.2-3.el7 @epel 24 k
nginx-mod-mail x86_64 1:1.12.2-3.el7 @epel 99 k
nginx-mod-stream x86_64 1:1.12.2-3.el7 @epel 157 k
事務概要
======================================================================================================
移除 1 軟件包 (+7 依賴軟件包)
安裝大小:1.9 M
是否繼續?[y/N]:
