Nginx服務器的安裝和卸載


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]:

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM