什麼是Nginxjavascript
在此以前也介紹過相關的內容與安裝過程,介於實際生產運維環境中使用之多,仍是有必要詳細瞭解和理解它的一些強大的功能與特性。css
Nginx做爲一個輕量級的HTTP服務器,相比Apache優點也是比較明顯的,在性能上它佔用資源少,能支持更高更多的併發鏈接,從而達到提升訪問效率;在功能上它是一款很是優秀的代理服務器與負載均衡服務器;在安裝配置上它安裝,配置都比較簡單java
Nginx的優點簡介: nginx
常常在運維面試中,面試官會問到,大家用什麼HTTP服務器啊?爲何用它??面試
一、做爲WEB服務器而言,Nginx處理靜態文件的效率比較高算法
二、做爲代理服務器而言,Nginx能夠實現無緩存的反向代理加速來提升WEB站點的運行速度,提升用戶訪問的體驗centos
三、做爲負載均衡服務器而言,支持的應用較多,同時也支持容錯功能,自帶算法進行負載均衡調度緩存
四、性能方面而言,採用內核poll模型,支持更多的併發鏈接,官方顯示最大可支持50000個併發鏈接的請求響應,但佔用資源不多且很是穩定 服務器
Nginx平常配置優化微信
一、日誌切割
因爲Nginx沒有Apache服務的cronolog日誌切割功能,因此須要進行相關優化處理,能夠編寫腳原本自動切割日誌文件
#!/bin/sh logpath="/nginx/logpath" nginxlogs="/var/log/nginx/" mkdir -p $logpath/$(date +%Y) mv $nginxlogs/access.log $logpath/$(date +%Y)/access_$(date +F).log mv $nginxlogs/error.log $logpath/$(date +%Y)/access_$(date +F).log kill -USR1 `cat /var/log/nginx/nginx.pid`
##經過USR1信號來控制進程,從而從新生成一個新的日誌文件
nginx對進程的控制功能很是強,能夠經過信號指令來控制進程,經常使用信號以下
QUIT 處理完當前請求後關閉進程
HUP 從新加載配置,不會中斷用戶的訪問請求
USR1 用於切割日誌
USR2 用於平滑升級可執行程序
最後將腳本執行命令加入到定時任務來實現自動切割日誌
二、nginx中FastCGI參數優化
提升nginx環境下PHP的運行效率,能夠將下面的配置加入到主配置文件中
fastcgi_cache_path /application/nginx/fastcgi_cache_levels=1:2 keys_zone=TEST:10m inactive=5m; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_cache TEST; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 3011d; fastcgi_cache_valid any 1m;
##應答緩存時間
三、nginx的HTTPgzip模塊配置
#查看nginx編譯參數 [root@centos7 ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.12.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --prefix=/usr/local/nginx
能夠看出在編譯時已加上此模塊,所以只須要在配置文件裏進行配置便可
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;
更多技術乾貨,可關注民工哥微信公衆號
一塊兒交流,共同提升!!!