1. 程式人生 > >nginx的優勢,特點,依賴,啟動

nginx的優勢,特點,依賴,啟動

ngx

Nginx
Nginx優勢
1.nginx將網絡,磁盤及定時器等異步事件的驅動都做了非常好的封裝,基於它開發將可以忽略這些事件處理的細節。
2.Nginx封裝了許多平臺無關的接口,容器,適用於跨平臺開發。
3.模塊化設計,使得開發者可以輕易的復用各種已有的模塊。
4.基於它開發服務器程序可以輕松的實現程序的動態升級,子進程的監控,管理,配置項的動態修改生效。
5.能夠使用特殊的系統調用(對linux做了大量的優化),更高效的完成任務。

特點:
1.更快:單次響應會得到更快的響應;在高峰期,nginx可以比其他web服務器更快的響應請求。
2.高擴展性:nginx完全是由多個不同的功能,不同層次,不同類型且耦合度極低的模塊組成。

3.高可靠性:這來自於其核心框架代碼的優秀設計,模塊設計的簡單性。
4.低內存消耗:10000個非活躍的http keep-alive連接在nginx中僅消耗2.5Mb的內存。
5.單機支持10萬以上的並發連接。
6.熱部署:master管理進程和worker工作進程的分離設計。
7.最free的bsd許可協議:不僅可以使用,還可以修改源代碼並發布。

依賴包:
gcc:可以編譯C語言程序
gcc-c++:編譯工具,編寫nginx HTTP模塊。
pcre:perl兼容正則表達式
pcre-devel:是使用pcre做二次開發時所需要的開發庫,包括頭文件。
zlib:對http包的內容做gzip格式壓縮
zlib-devel:做二次開發時所需的開發庫

openssl:支持在更安全的ssl協議上傳輸http(MD5,sha1)
openssl-devel
技術分享圖片

File-max::表示一個進程,可以同時打開的最大句柄數。
Tcp_tw_reuse:1表示充許將time-wait狀態的socket重新用於新的Tcp_keepalive_time:當keepalive啟動時,tcp發送keepalive消息的頻度,默認2小時,若將其設置的小一些,可以更快的清理無效的連接。
Tcp_fin_timeout:當服務器主動關閉連接時,socket保持在fin-wait-2狀態的最大時間。
Tcp_max_syn_backlog:表示tcp三次握手建立階段接收syn請求隊列的最大長度,默認為1024,將其設置的大些可以使出現nginx繁忙來不及accept新連接的情況時,linux不至於丟失客戶端發起的連接請求。

Ip_local_port-range:在udp和tcp連接中本地(不包括連接的遠程)
端口的取值範圍。
Net.ipv4.tcp_rmem:定義了tcp接收緩存(用於tcp接受滑動窗口)的最小值,默認值,最大值。
Net.ipv4.tcp_wmem:定義了tcp發送緩存(用於tcp接受滑動窗口)的最小值,默認值,最大值。
Netdev_max_backlog:當網卡接收數據包的速度大於內核處理的速度時,會有一個小隊列保存這些數據包,這個參數表示該隊列的最大值。
Rmem_default:表示內核套接字接收緩存區的默認大小。
Wmem_default:表示內核套接字發送緩存區的默認大小。
Rmem_max:表示內核套接字接收緩存區的最大大小。
Wmem_max:表示內核套接字發送緩存區的最大大小。
Tcp_syncookies:用於解決tcp的syn攻擊

cat ./configure
auto/options:處理configure命令的參數
auto/init:腳本初始化後續將產生的文件路徑。
auto/sources:分析nginx的源碼結構,構造後續的makefile文件
技術分享圖片

技術分享圖片

默認啟動:
/usr/local/nginx/sbin/nginx -c /etc/nginx.conf
指定安裝目錄的啟動方式
/usr/local/nginx/sbin/nginx -p /usr/local/nginx
指定全局配置項的啟動方式
/usr/local/nginx/sbin/nginx -g “pid /var/nginx/test.pid”
測試配置信息是否有錯
/usr/local/nginx/sbin/nginx -t -q (-q可以不把error級別以下的信息輸出到屏幕)
顯示版本
/usr/local/nginx/sbin/nginx -V
快速停止
/usr/local/nginx/sbin/nginx -s stop (收到信號立即跳出循環)
處理完當前所有請求再停止
/usr/local/nginx/sbin/nginx -s quit (關閉監聽端口,停止接受新的鏈接,處理完請求,退出)
停止冒個worker進程
kill -s SIGWINCH <nginx worker pid>
使運行中的nginx重讀配置文件
/usr/local/nginx/sbin/nginx -s reload
日誌文件回滾
/usr/local/nginx/sbin/nginx -s reopen
平滑升級nginx
技術分享圖片

nginx的優勢,特點,依賴,啟動