其一,Nginx不是隨隨便便一篇博文就能講清楚的,嚴謹地說,筆者連入門者都算不上;其二,此文系前段日子裏,學習Nginx時的筆記歸檔類博文,還有諸多不完整處,僅供參考。 寫這篇博文的時間點:2019-06-17 22:58,寢室在六樓,剛剛感覺到了地震的餘波。
定義:Nginx是一個最初由俄國程序設計師lgor Sysoev開發的高性能的Web服務器和反向代理服務器,用於HTTP/HTTPS/SMTP/POP3和IMAP協議。 特性: 反向代理/負載均衡器 與Apache的區別 Nginx Apache Nginx是一個基於事件的Web服務器 Apache是一個基於流程的服務器 全部請求都由一個線程處理 多線程性。一個線程處理一道請求。 Nginx避免子進程的概念 Apache是基於子進程的 Nginx相似於速度 Apache相似於功率 Nginx在負載均衡方面表現較好(用C編寫) Apache在內存消耗和鏈接上沒有提升 Nginx支持PHP,對於PHP來講,Nginx更可取 當流量達到進程的極限時,Apache將拒絕新的鏈接 Nginx只具備核心功能 Apache支持的PHP/Python/Perl和其餘語言使用插件時,當程序基於Python或Ruby時,很是有用 Nginx的性能和可伸縮性不依賴於硬件 Apache支持更多的OS Apache提供了比Nginx更多的功能 Nginx佔用內存小,但併發能力強 Apache依賴於CPU和內存等硬件組件
+ 默認狀況下,運行中的nginx會包含:1X主進程(master process)和NX工做進程(worker process) + 主進程 充當監控進程,而主進程生成的子進程則充當工做進程。 主進程充當整個進程組與管理用戶的交互接口,同時對進程進行監護。 它不須要處理網絡事件,不負責業務執行,只會經過管理worker進程來實現重啓服務,關閉服務,配置文件生效等功能 + 工做進程 Nginx子進程充當工做進程,負責完成具體的任務。 子進程主要負責完成用戶請求與返回用戶數據,以及與後端應用服務器的數據交互等工做。 + Nginx如何處理一道HTTP請求 Nginx接收到請求 首先,根據http請求的「host」頭決定由哪一個虛擬機處理請求 而後,匹配請求的URI,並根據URI定義規則返回數據。
"/etc/nginx/"php
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.confhtml
/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_paramsnginx
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utfapache
/etc/nginx/mime.types後端
ngx_http_core_module 主要負責Nginx全局應用,針對主配置文件Main區塊和Events區塊
ngx_http_access_module 訪問控制模塊,用來控制網站用戶對Nginx的訪問
ngx_http_gzip_module 壓縮模塊,對Nginx返回的數據壓縮,屬於性能優化模塊
ngx_http_fastcgi_module FastCGI模塊,和動態應用相關的模塊,例如php
ngx_http_proxy_module proxy代理模塊
ngx_http_upstream_module 負載均衡模塊,可實現網站的負載均衡功能及節點的健康檢查
ngx_http_rewrite_module URL地址重寫模塊
ngx_http_limit_conn_module 限制用戶併發鏈接數及請求模塊
ngx_http_limit_req_module 根據定義的key限制Nginx請求過程的速率
ngx_http_log_module 訪問日誌模塊,以指定的格式記錄Nginx客戶訪問日誌等信息
ngx_http_auth_basic_module Web認證模塊,設置Web用戶,經過帳戶,密碼訪問Nginx
ngx_http_ssl_module SSL模塊,用於加密的HTTP鏈接,如:HTTPS
ngx_http_stub_status_module 記錄Nginx基本訪問狀態信息等的模塊tomcat
sudo apt-get install nginx whereis nginx # 查看Nginx相關文件目錄
sudo nano /etc/nginx/sites-available/default # root /var/www/html; root /home/jame/www;
sudo service nginx start #啓動 sudo /usr/local/nginx/nginx #啓動 sudo service nginx restart #重啓 sudo nginx quit #關閉,從容關閉
ps -ef | grep nginx