centos 編譯安裝nginx

這裏選用的是nginx-1.10.1穩定版,其基礎依賴庫有gcc、gcc-c++、pcre、zlib和openssl。nginx

pcre、zlib和openssl這三個依賴庫在安裝nginx時無需編譯安裝,下載源碼包解壓便可。c++


一、安裝md5和sha1支持庫centos

由於我選用的nginx配置裏有sha和md5,須要openssl庫,因此我要編譯安裝openssl。瀏覽器

1.一、先安裝gccdom

yum install gcc.x86_64


1.二、再安裝openssltcp

./config --prefix=/opt/openssl-1.0.2h --openssldir=/opt/openssl-1.0.2h/conf --shared make
make test make install

--openssldir是指定配置文件的目錄,--shared是要求編譯動態庫。編譯後若make test顯示ALL TESTS SUCCESSFUL(通常在輸出信息最後一頁的最上邊),說明生成的庫正確,便可安裝。測試


二、接下來安裝nginx:atom

2.一、這個configure須要安裝幾個依賴庫centos7

yum install gcc.x86_64 gcc-c++.x86_64 libxml2.x86_64 libxml2-devel.x86_64 libxslt.x86_64 libxslt-devel.x86_64 gd.x86_64 gd-devel.x86_64


2.二、接下來配置nginx的configurespa

./configure --prefix=/opt/nginx-1.13.6 \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module \
--with-http_image_filter_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module \
--with-http_perl_module=dynamic \
--with-mail \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre \
--with-pcre=/root/pcre-8.41 \
--with-zlib=/root/zlib-1.2.11 \
--with-libatomic \
--with-openssl=/root/openssl-1.0.2m

--with-openssl、--with-pcre和--with-zlib指定依賴庫的源代碼目錄,nginx會根據其須要對他們進行編譯。

--with-md5和--with-sha1指定須要的openssl庫文件位置。

--with-threads使nginx使用線程池機制,--with-file-aio啓用file aio支持。

若是不須要nginx特別處理不一樣地域的訪問,不建議安裝--with-http_geoip_module,由於yum上沒有geoip庫,須要編譯安裝MaxMind的GeoIP庫

配置完成後,會輸出一下信息:


2.三、編譯安裝

make
make install


三、配置使用環境

3.一、確認版本號

/opt/nginx-1.10.1/sbin/nginx -V

顯示版本信息和configure


3.二、啓動nginx

若使用--user或--group參數,須要先添加相關用戶纔可以使用。不添加的話工做進程所屬用戶爲nobody

#啓動:
/opt/nginx-1.10.1/sbin/nginx
#重啓
/opt/nginx-1.10.1/sbin/nginx -s reload


3.三、進程控制

#查詢nginx主進程號 ps -ef | grep nginx #中止進程 kill -QUIT 主進程號 #快速中止 kill -TERM 主進程號 #強制中止 pkill -9 nginx


3.四、端口測試

netstat –na|grep 80

中止防火牆後,在其餘機器瀏覽器中可見


3.五、配置防火牆

#centos6
vi /etc/sysconfig/iptables
#在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited以前,添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables restart

#centos7
firewall-cmd --query-service http --permanent
firewall-cmd --reload


3.六、開機啓動

centos6.*  :

echo "/opt/nginx-1.10.1/sbin/nginx">> /etc/rc.local

centos7.*  :

自el7開始,redhat逐漸減小對rc.local的依賴。在centos7裏最好使用systemctl將nginx加入系統服務

在/usr/lib/systemd/system/下新建一個nginx.service文件,文件內容爲:

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart= /opt/nginx-1.10.1/sbin/nginx
ExecReload= /opt/nginx-1.10.1/sbin/nginx -s restart
ExecStop= /opt/nginx-1.10.1/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Description  服務描述

After     須要預先開啓哪些服務

Type     運行模式

ExeStart   開啓

ExeReload  重載

ExeStop   中止

PrivateTmp  創建臨時文件目錄

systemctl daemon-reload        #重載systemctl的守護進程
systemctl start nginx               #開啓nginx服務
systemctl restart nginx
systemctl stop nginx
systemctl enable nginx            #nginx服務開機運行
systemctl status -l nginx          #查詢nginx服務狀態


3.七、頁面查看nginx運行狀態

在/opt/nginx-1.10.1/conf/nginx.conf中,加入:

 

location /nginx_status { stub_status on; access_log off; #allow 127.0.0.1; #deny all; }

 

重啓nginx,在瀏覽器打開ip/nginx_status

active connections – 活躍的鏈接數量
server accepts handled requests — 總共處理了5個鏈接 , 成功建立5次握手, 總共處理了60個請求
reading — 讀取客戶端的鏈接數.
writing — 響應數據到客戶端的數量
waiting — 開啓 keep-alive 的狀況下,這個值等於 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留鏈接.

 

 

 

 


configure部分參數詳細說明:http://blog.csdn.net/eric1012/article/details/6052154

 

 

 

 

 

相關文章
相關標籤/搜索