Nginx----基础
靜態資源服務
通過本地文件系統提供服務:對css,js文件,圖片等靜態文件
反向代理服務
緩存:將一些數據經常不變的,緩存到Nginx中,直接給用戶提供服務
負載均衡
api服務
OpenResty
數據庫的服務比較簡單,tps和并發遠遠高于應用服務,所有Nginx可以直接訪問數據庫提高性能
利用nginx強大的并發性能,實現web防火墻等復雜的業務功能;
Nginx優點
高并發,高性能:對每一個連接使用的內存盡量少
可擴展性好:nginx模塊化非常穩定使得Nginx第三方模塊生態圈豐富。
高可靠性:運行時間長,不需要經常重啟服務器
熱部署:不停止服務下,升級Nginx
BSD許可證:可以修改源代碼運行在商業的服務器上是合法的
Nginx組成
nginx二進制可執行文件:由各個模塊編譯出的文件
nginx.conf:配置文件
access.log:記錄每一條http請求信息
error.log:錯誤消息
?
Nginx各版本
開源版:nginx.org
商業版:nginx.com(不開源)
?
?
阿里巴巴的Tengine
Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。
從2011年12月開始,Tengine成為一個開源項目,Tengine團隊在積極地開發和維護著它。Tengine團隊的核心成員來自于淘寶、搜狗等互聯網企業。
缺點:沒有辦法根據nginx的官方版本同步升級
OpenResty
OpenResty(也稱為 ngx_openresty)是一個全功能的 Web 應用服務器。它打包了標準的 Nginx 核心,很多的常用的第三方模塊,以及它們的大多數依賴項。
開源OpenResty:http://openresty.org
商業版OpenResty:https://openresty.com
?
下載Nginx
windows
直接在官網上下載windows版本即可,安裝的目錄不要帶有中文,否則啟動nginx會報錯,可以直接運行
linux
首先linux可能需要安裝其他的模塊(nginx中gzip模塊需要zlib庫,rewrite模塊需要pcre庫,ssl功能需要openssl庫),如果需要的時候可以來下載...
參考https://www.cnblogs.com/woniusky/p/11050499.html
1、nginx下載
wget http://nginx.org/download/nginx-1.16.1.tar.gz2、編譯和安裝
參考官方文檔:http://nginx.org/en/docs/configure.html
./configure ---prefix=/usr/local/nginx/ 可以指定其他的,不指定就是默認值,執行完成后,會生成objs目錄 make 可以在objs目錄下看到一個nginx文件,這個文件是為了在版本升級時,不能進行make install,需要將該(nginx)copy到prefix安裝目錄中sbin目錄下 make install 安裝完成之后,可以去prefix指定的目錄中查看安裝后的文件基本使用
1、Nginx命令行
格式:nginx -s reload 幫助:-?-h 使用指定的配置文件:-c 指定運行目錄:-p 發送信號:-s 測試配置文件是否有語法錯誤:-t -T 打印nginx的版本信息、編譯信息等:-v -V2、常用命令
./nginx //啟動,如果啟動后訪問不了,看看是不是防火墻禁止了端口(nginx默認監聽80端口) ./nginx -s reload //重載配置文件,在sbin目錄下(如果我們修改了配置文件中的配置(我們安裝nginx的目錄中的conf),我們希望立刻生效,但是不會重啟nginx) ./nginx -s stop //關閉?
firewall-cmd --list-all :查看防火墻開放的端口
?
?添加對外開放的端口
sudo firewall-cmd --add-port=80/tcp --permanent firewall-cmd -reload 重啟防火墻3、熱部署
當我們的nginx處于運行狀態,我們需要對他進行版本升級
我們可以將sbin目錄中的nginx執行二進制文件備份一下
cp nginx nginx.old編譯好最新的nginx二進制文件去替換sbin目錄下的nginx文件(在objs目錄中有我們編譯好的nginx,用它來替換sbin目錄中nginx)
? 給正在運行的nginx master進程發送一個信號,我們需要版本升級了
ps-ef I grep nginx
kill -USR2 13195:此時會新啟動一個nginx master進程
kill -WINCH 13195:關閉老的進程,此時的worker process關閉了,但是master process沒有關閉是為了如果新版本有問題,方便我們回退版本
?
4、日志切割
可以寫一個腳本,每隔一段時間進行切割日志
#!/bin/bash #Rotate the Nginx logs to prevent a single logfile from consuming too much disk space. LOGS_PATH=/usr/Local/openresty/nginx/logs/history CUR_LOGS_PATH=/usr/Local/openresty/nginx/logs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) mv ${CUR_LOGS PATH}/taohui_access.1og ${LOGS_PATH}/taohui_access_${YESTERDAY}.1og mv ${CUR_LOGS_PATH}/maomaoxiong_access.1og ${L0GS_PATH}/maomaoxiong_access_${YESTERDAY}.1og mv ${CUR_LOGS_PATH}/error.1og ${LOGS_PATH}/error_${YESTERDAY}.1og ##向Nginx主進程發送USR1信號。USR1信號是重新打開日志文件,1是數字1 kil1-USR1 $(cat /usr/Local/openresty/nginx/Logs/nginx.pid)?
4、nginx配置文件詳細
event之前的部分:全局塊,從配置文件開始到events塊之間的內容,主要會設置一些影響nginx服務器整體運行的配置指令
event:events 涉及的指令主要影的 Nginx 服務器與用戶的網絡連接
http塊:
http全局塊:配置的指令包括文件引入、MIME-TYPE定義、日志自定義、連接超時時間、單鏈接請求數上限等。
server塊:這塊和虛擬主機有密切關系,虛擬主機從用戶角度看,和一臺獨立的硬件主機是完全一樣的,該技術的產生是為了節省互聯網服務器硬件成本。
location塊:這塊的主要作用是基于Nginx 服務器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱(也可以是IP別名)之外的字符串(例如前面的/uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊的配置也在這里進行。
localtion語法說明
location [=|~|~*|^~] uri{} 1、=:用于不含正則表達式的uri前,要求請求字符串與uri嚴格匹配,如果匹配成功,就停止繼續向下搜索并立即處理該請求。
2、~:用于表示uri包含正則表達式,并且區分大小寫。
3、~*:用于表示uri包含正則表達式,并且不區分大小寫。
4、^~:用于不含正則表達式的 uri前,要求Nginx 服務器找到標識uri和請求字
?
轉載于:https://www.cnblogs.com/yanxiaoge/p/11535673.html
總結
以上是生活随笔為你收集整理的Nginx----基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome谷歌浏览器登入指引
- 下一篇: allegro导出pcb封装库