這裏選用的是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