1. 程式人生 > >CentOS 7.5 編譯安裝 Nginx 1.15.5

CentOS 7.5 編譯安裝 Nginx 1.15.5

關於Nginx

  • Nginx是一個高效能、輕量級的HTTP和反向代理服務及電子郵件IMAP/POP3/SMTP代理服務
  • 因它的穩定性、豐富的功能集、示例配置檔案和低系統資源消耗而聞名。
  • 特點:記憶體佔用少,併發能力強
  • 事實上Nginx的併發能力確實在同類型的網頁伺服器中表現較好,
  • 中國大陸使用Nginx的大型網站有:百度、京東、新浪、網易、騰訊、淘寶等。

本次實驗環境
- 系統:Centos7.5(1804)
- 軟體:Nginx 1.15.5
- 依賴:Pcre8.42、Zlib-1.2.11、Openssl-1.1.1
- 使用者:root

1、建立使用者及使用者組

//建立系統使用者組Nginx
[
[email protected]
~]#groupadd -r nginx //建立系統使用者nginx並加入nginx系統使用者組 // -r: 新增系統使用者 // -g: 指定要建立的使用者所屬組 // -s: 新帳戶的登入shell //其中/sbin/nologin指使用者不能用來登入系統 // -d: 新帳戶的主目錄 // -M: 不要建立使用者的主目錄 //將要被建立的系統使用者nginx不會在/home目錄下建立nginx家目錄 [[email protected] ~]# useradd -r -g nginx -s /sbin/nologin -d /usr/local/nginx -M nginx

2、建立相關目錄

//建立快取目錄在/var/tmp/nginx/
[[email protected] ~]# mkdir -pv /var/tmp/nginx/{client_body,proxy,fastcgi,uwsgi,scgi}
//賦予Nginx使用者許可權
[[email protected] ~]# chown -R nginx:nginx /var/tmp/nginx/
//建立日誌目錄在/usr/local/nginx/
[[email protected] ~]# mkdir -pv /usr/local/nginx/logs
//賦予Nginx使用者許可權
[[email protected]
~]# chown -R nginx:nginx /usr/local/nginx/

3、安裝基本環境

[[email protected] ~]# yum -y install gcc gcc-c++ autoconf automake make wget vim
[[email protected] ~]# yum -y install openssl openssl-devel libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed libtool zlib zlib-devel pcre pcre-devel patch

4、建立臨時軟體包目錄

[email protected] ~]# mkdir package && cd package

5、安裝PCRE-8.42(Nginx的Rewrite功能)

[[email protected] package]# wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
[[email protected] package]# tar -zxvf pcre-8.42.tar.gz
[[email protected] package]#cd pcre-8.42/ && ./configure && make && make install && cd ..

6、安裝Zlib-1.2.11(Nginx的Gzip壓縮功能)

[[email protected] package]# wget http://www.zlib.net/fossils/zlib-1.2.11.tar.gz
[[email protected] package]# tar -zxvf zlib-1.2.11.tar.gz
[[email protected] package]# cd zlib-1.2.11 && ./configure && make && make install && cd ..

7、安裝OpenSSL-1.1.1(nginx第三方模組—nginx-sticky-module的使用)

[[email protected] package]# wget https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz 
[[email protected] package]# tar -zxvf openssl-1.1.1-pre8.tar.gz
[[email protected] package]# cd openssl-1.1.1-pre8 && ./config && make && make install && cd ..

8、安裝nginx-sticky-module

[[email protected] package]# wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
[[email protected] package]# tar -zxvf master.tar.gz
[[email protected] package]# mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ nginx-sticky-module/

9、安裝Nginx-1.15.5

//下載原始碼包
[[email protected] package]# wget http://nginx.org/download/nginx-1.15.5.tar.gz
//解壓原始碼包
[[email protected] package]# tar -zxvf nginx-1.15.5.tar.gz
//進入工作目錄
[[email protected] package]# cd nginx-1.15.5
//完整複製以下38行命令後回車執行配置
[[email protected] nginx-1.15.5]# ./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid  \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_random_index_module \
--with-http_degradation_module \
--with-http_secure_link_module \
--with-http_gzip_static_module \
--with-http_perl_module \
--add-module=../nginx-sticky-module \
--with-pcre=../pcre-8.42 \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1-pre8 \
--with-file-aio \
--with-mail \
--with-mail_ssl_module \
--http-client-body-temp-path=/var/tmp/nginx/client_body \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-stream \
--with-ld-opt="-Wl,-E"
//編譯選項說明   
--prefix=PATH   //指定nginx的安裝目錄預設 /usr/local/nginx
--sbin-path=PATH   //設定nginx可執行檔案的名稱。預設/sbin/nginx
--conf-path=PATH   //設定nginx.conf配置檔案的名稱。預設/conf/nginx.conf
--pid-path=PATH   //設定儲存主程序ID檔案nginx.pid的名稱。預設/logs/nginx.pid
--error-log-path=PATH   //設定錯誤,警告和診斷檔案的名稱。預設/logs/error.log
--http-log-path=PATH   //置HTTP伺服器的請求日誌檔案的名稱。預設/logs/access.log
--lock-path=PATH   //安裝檔案鎖定,防止安裝檔案被利用及誤操作
--user=nginx   //指定程式執行時的非特權使用者。可以隨時在nginx.conf配置檔案更改。預設為nobody
--group=nginx   //指定程式執行時的非特權使用者所在組名稱。預設設定為非root使用者的名稱
--with-http_realip_module   //啟用ngx_http_realip_module支援(允許從請求標頭更改客戶端的IP地址值,預設關閉)
--with-http_ssl_module   //啟用ngx_http_ssl_module支援(使支援https請求,需已安裝openssl)
--with-http_stub_status_module   //啟用ngx_http_stub_status_module支援(獲取nginx自上次啟動以來的工作狀態)
--with-http_gzip_static_module   //啟用ngx_http_gzip_module支援(與without-http_gzip_module功能一致)
--http-client-body-temp-path=PATH   //定義http客戶端請求臨時檔案路徑
--http-proxy-temp-path=PATH   //定義http代理臨時檔案路徑
--http-fastcgi-temp-path=PATH   //定義http fastcgi臨時檔案路徑
--http-uwsgi-temp-path=PATH   //定義http scgi臨時檔案路徑
--with-pcre   //設定pcre庫的原始碼路徑,如果已通過yum方式安裝,使用–with-pcre自動找到庫檔案。
              //使用--with-pcre=PATH時,需要從PCRE網站下載pcre庫的原始碼(版本8.42)並解壓
              //剩下的就交給Nginx的./configure和make來完成。
              //perl正則表示式使用在location指令和 ngx_http_rewrite_module模組中。
--with-zlib=PATH   //指定 zlib-1.2.11的原始碼目錄。預設啟用網路傳輸壓縮模組ngx_http_gzip_module時需要使用zlib
--with-http_ssl_module   //使用https協議模組。預設情況下,該模組沒有被構建。前提是openssl已安裝
--add-module=PATH   //新增第三方外部模組,如nginx-sticky-module-ng或快取模組。每次新增新的模組都要重新編譯

10、配置完成後編譯並安裝Nginx

[[email protected] nginx-1.15.5]# make && make install

11、將Nginx加入systemctl管理服務

[[email protected] nginx-1.15.5]# vim /usr/lib/systemd/system/nginx.service
#按i進入編輯模式寫入以下內容(不包含本行)
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target

12、給予檔案754許可權

[[email protected] nginx-1.15.5]# chmod 754 /usr/lib/systemd/system/nginx.service

13、修改或新增檔案需要執行以下語句才能生效

[[email protected] nginx-1.15.5]# systemctl daemon-reload

14、啟動Nginx伺服器

[[email protected] nginx-1.15.5]# systemctl start nginx
[[email protected] nginx-1.15.5]# systemctl enable nginx

15、檢視Nginx服務啟動狀態

[[email protected] nginx-1.15.5]# systemctl status nginx

16、CentOS7 新增開放TCP 80埠

//開放80埠、如果需要https則開放443埠
[[email protected] nginx-1.15.5]# firewall-cmd --zone=public --add-port=80/tcp --permanent
//過載防火牆配置
[[email protected] nginx-1.15.5]# firewall-cmd --reload

17、檢視Nginx版本

[[email protected] nginx-1.15.5]# nginx -v
nginx version: nginx/1.15.5

返回結果如下圖,即安裝成功
安裝完成