Nginx是高度自由化的Web服務器,它的功能是由許多模塊來支持。如果使用了某個模塊,這個模塊使用了一些類似zlib或OpenSSL等的第三方庫,那么就必須先安裝這些軟件。centOS中使用yum直接在線安裝,可以使用以下方法。
(1)PCRE庫
PCRE庫支持正則表達式。如果我們在配置文件nginx.conf中使用了正則表達式,那么在編譯Nginx時就必須把PCRE庫編譯進Nginx,因為Nginx的HTTP模塊需要靠它來解析正則表達式。另外,pcre-devel是使用PCRE做二次開發時所需要的開發庫,包括頭文件等,這也是編譯Nginx所必須使用的。
(2)zlib庫
zlib庫用於對HTTP包的內容做gzip格式的壓縮,如果我們在nginx.conf中配置了gzip on,並指定對於某些類型(content-type)的HTTP響應使用gzip來進行壓縮以減少網絡傳輸量,則在編譯時就必須把zlib編譯進Nginx。zlib-devel是二次開發所需要的庫。
(3)OpenSSL庫
如果服務器不只是要支持HTTP,還需要在更安全的SSL協議上傳輸HTTP,那么需要擁有OpenSSL。另外,如果我們想使用MD5、SHA1等散列函數,那么也需要安裝它。
yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel
附:編譯所需
yum install -y gcc gcc-c++
創建用戶nginx,以該用戶的身份執行nginx
useradd -s /bin/false -M www
編譯安裝NGINX
./configure --user=nginx \ --group=nginx \ --prefix=/usr/local/nginx/1.22.0 \ --conf-path=/usr/local/etc/nginx/1.22.0/nginx.conf \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_sub_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre
make並安裝
make && make install
編寫啟動腳本
[root@n1 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit] Description=nginx After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/1.22.0/logs/nginx.pid ExecStartPost=/bin/sleep 0.1 ExecStartPre=/usr/local/nginx/1.22.0/sbin/nginx -t -c /usr/local/etc/nginx/1.22.0/nginx.conf ExecStart=/usr/local/nginx/1.22.0/sbin/nginx -c /usr/local/etc/nginx/1.22.0/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
加入到開機啟動
systemctl enable nginx.service
最后防火牆關閉或者開啟80端口訪問。
修改 vim /usr/local/etc/nginx-1.22.0/nginx.conf 中 user 為 www