【Nginx】Nginx網站服務

國外主流還是使用apache;國內現在主流是nginx(并發能力強,相對穩定)
nginx:高性能、輕量級的web服務軟件
特點:
1.穩定性高(沒apache穩);
2.系統資源消耗比較低;處理http請求的并發能力非常高,單臺物理服務器可以處理3-5萬個并發請求
一般在企業中,為了保持服務器的穩定,并發量會設置在2萬個左右;占用內存2M左右,keep-alive在3M左右

nginx的主要功能:

1.靜態文件服務,nginx可以直接提供靜態文件的服務,HTML,CSS,JavaScript,圖片等,能夠高效的處理并且響應靜態文件的請求
2.反向代理:可以作為反向代理的服務器,將客戶端的請求轉發給后端多個服務器,可以實現負載均衡,高可用。提高整個集群的性能,以及可靠性
3.處理動態內容,nginx不能直接處理動態請求,需要依靠后端能夠處理的應用php node.js java python nginx可以代理請求,發送到后端的動態服務處理,動態服務器處理完之后,nginx來吧動態請求,響應給客戶端
4.SSL/TLS加密,HTTPS的加密方式,數字證書驗證機制
5.虛擬主機,nginx可以在一臺服務器上設置多個虛擬主機,同一個服務器上可以有多個域名和站點
6.URL重定向,可以實現靈活的url重寫和重定向
7.緩存功能,nginx自帶緩存功能;get可以獲取緩存,post不能獲取緩存
8.日志功能,可以詳細的記錄請求的信息,包括訪問時間、請求路徑IP地址、響應狀態、有助于故障排查
系統控制的日志,記錄在/var/log/messages 業務日志:access.log、error.logaccess.log	記錄了訪問成功的記錄error.log		記錄了訪問失敗的記錄
正向代理:

***反向代理:

核心:客戶端在請求時通過代理服務器,會把請求流量按照輪詢算法,轉發到后臺不同的服務器,實現負載均衡和高可用

緩存

nginx的主要應用場景:

1.靜態服務2.反向代理、負載均衡3.緩存服務4.動態服務
?***nginx是如何實現高并發的?
1.  nginx自身代碼的問題:大量的底層代理進行了優化,同時自帶了一個功能模塊——epoll模塊,可以支持高并發
2.  nginx也是一個master進程控制多個work進程,master負責收集和分發請求,work是實際執行者;每一個請求進來時,master就會拉起一個work進程來處理請求同時,master進程也負責監控work的狀態;worker的數量和cpu要一致或者是cpu的2倍worker處理請求的過程中,只收內存大小的限制,所以可以處理多個請求;再加上nginx本身就是輕量級的服務,處理請求時占用的內存本身很少,所以可以起到大并發處理的能力兩者之間相互依賴,相互補充
conf    保存的是所有nginx的配置文件,其中最核心的就是nginx.conf
html    保存nginx的web文件,這個木里是默認的目錄,可以改
50x.html    是nginx默認的錯誤頁面的提示logs    保存日志文件的位置
sbin		nginx二進制的啟動腳本,可以結合不同的參數來進行使用nginx -t	檢查配置文件是否配置正確
nginx -v	查看nginx的版本號
nginx -s	向主進程傳輸信號,停止、開啟、重啟、重新加載
nginx -c	設置配置文件的默認路徑nginx -s stop
nginx -s start
nginx -s reload

信號符:

信號符結合kill命令:
kill -USR1 pid號 		#日志分割
kill -s HUP pid號		#kill后只能跟pid號,重新加載
killall -s HUP nginx	#killall后可以跟服務名,也可以用pid號
kill -s QUIT pid號		#優雅退出,有人訪問時不會結束進程,訪問完后再結束進程
kill -s WINCH pid號		#優雅地結束worker,直到請求完成才會結束worker進程

必須要epel源(工作中一般不用yum安裝)

yum install -y epel-release
yum install nginx -yworker_processes 1;		#工作進程,也就是worker進程的數量,一般是配置成cpu數一致,或者2倍;         一般來說小網站設置成1就足夠了worker_connections	1024	#每個進程可以處理的最大連接數,默認為1024
***如何修改linux服務器文件的最大打開數量
ulimit -n 65535				#臨時修改;65535為linux最大可打開數量
vim  /etc/security/limits.conf# 65535 為Linux系統最大打開文件數* soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535
#永久修改,需要重啟linux才能生效ulimit -a

usr/local/nginx/conf/nginx.conf ????????#配置文件

event塊

?http塊

?server塊可以配置虛擬主機的相關參數,一個http模塊中可以有多個server塊

?location塊匹配的是URI(域名后面的地址)

?***#location / 表示 /usr/local/nginx/html
    root		拼接;root指定的目錄和location匹配的url之間做一個拼接,/opt/ky30/這兩個路徑都要真實存在,而且都是目錄,并且在url目錄里要有web文件alias		匹配指定路徑下的web文件/root后面有沒有 / 無所謂;alias加了 / ,后面也必須有 / ,否則匹配不到root標簽可以使用重定向
alias標簽不可以設置重定向

全局塊 全局生效,所有模塊,所有用戶都生效
events    影響服務器和用戶的網絡連接問題
http      主要模塊,配置代理、緩存、虛擬主機、方向代理、只能是http的請求才能寫入 http模塊中;upstream #反向代理指定服務器的命令
server塊      包含在http模塊當中,不能單獨設置
location塊    匹配uri,包含在server當中,也不能單獨設置porxy_pass    #反向代理upstream	七層,基于IP和端口,走http協議,所以只能在http模塊中
stream	    四層,走的是tcp或者udp流量,不能寫在http當中,寫在全局配置

實驗:

一、訪問狀態統計

1:

1:經過三次握手的

1:處理的請求數

二、基于用戶名和密碼的訪問控制

三、基于IP地址的訪問規則

四、虛擬主機,創建多個虛擬主機

基于一個服務器,創建多個主頁

?nginx -t

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36659.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36659.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36659.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Failed to set locale, defaulting to C.UTF-8 或者中文系統語言轉英文系統語言

CentOS 8中執行命令,出現報錯:Failed to set locale, defaulting to C.UTF-8報錯原因: 1、沒有安裝相應的語言包。2、沒有設置正確的語言環境。 解決方法1:安裝語言包 設置語言環境需使用命令 localelocale -a 命令,查…

代碼隨想錄day02

977.有序數組的平方 ● 力扣題目鏈接 ● 給你一個按 非遞減順序 排序的整數數組 nums,返回 每個數字的平方 組成的新數組,要求也按 非遞減順序 排序。 思路 ● 暴力排序,時間復雜度O(n nlogn) ● 使用雙指針,時間復雜度O(n) …

Vue中使用v-bind:class動態綁定多個類名

Vue.js是一個流行的前端框架,它可以幫助開發者構建動態交互的UI界面。在Vue.js開發中,經常需要動態綁定HTML元素的class(類名)屬性,以改變元素的外觀和行為。本文將介紹采用v-bind:class指令在Vue中如何動態綁定多個類…

【大數據】-- 本地部署 Flink kubernetes operator

目錄 1.說明 1.1 版本 1.2 kubernetes 環境 1.3 參考 2.安裝步驟 2.1 安裝本地 kubernetes 環境

判斷鏈表有環的證明

目錄 1.問題 2.證明 3.代碼實現 1.問題 給你一個鏈表的頭節點 head ,判斷鏈表中是否有環。 如果鏈表中有某個節點,可以通過連續跟蹤 next 指針再次到達,則鏈表中存在環。 為了表示給定鏈表中的環,評測系統內部使用…

TansUNet代碼理解

首先通過論文中所給的圖片了解網絡的整體架構: vit_seg_modeling部分 模塊引入和定義相關量: # codingutf-8 # __future__ 在老版本的Python代碼中兼顧新特性的一種方法 from __future__ import absolute_import from __future__ import division fr…

新基建助推數字經濟,CosmosAI率先布局AI超算租賃新紀元

倫敦, 8月14日 - 在英國倫敦隆重的Raffles OWO舉辦的歐盟數字超算新時代戰略合作簽約儀式,CosmosAI、Infinite Money Fund與Internet Research Lab三方強強聯手,達成了歷史性的合作協議,共同邁向超算租賃新紀元。 ? 這次跨界的合作昭示了全球…

Session基礎

文章目錄 什么是Sessionsession與cookie的區別和聯系Session的存Session的取 什么是Session 服務器為每個用戶瀏覽器創建一個會話對象(session對象),一個瀏覽器只能產生一個session當新建一個窗口訪問服務器時,還是原來的那個ses…

VR家裝提升用戶信任度,線上體驗家裝空間感

近些年,VR家裝逐漸被各大裝修公司引入,VR全景裝修的盛行,大大增加了客戶“所見即所得”的沉浸式體驗感,不再是傳統二維平面的看房模式,而是讓客戶通過視覺、聽覺、交互等功能更加真實的體驗家裝后的效果。 對于傳統家裝…

本地Linux 部署 Dashy 并遠程訪問教程

文章目錄 簡介1. 安裝Dashy2. 安裝cpolar3.配置公網訪問地址4. 固定域名訪問 轉載自cpolar極點云文章:本地Linux 部署 Dashy 并遠程訪問 簡介 Dashy 是一個開源的自托管的導航頁配置服務,具有易于使用的可視化編輯器、狀態檢查、小工具和主題等功能。你…

JS如何向數組中添加數組

常見的辦法有 1、push()方法 var arr [a, b, c,d]; arr.push(e); console.log(arr); // [a, b, c, d,e] 2、concat()方法 var arr1 [a, b, c]; var arr2 [d, e, f]; var arr3 arr1.concat(arr2); console.log(arr3); // [a, b, c, d, e, f] 3、可以使用ES6中的spread操作符…

【git】Fork或者git clone克隆了別人項目,如何保持與原項目同步更新

Fork或者git clone克隆了別人項目,如何保持與原項目同步更新 #mermaid-svg-LC920CR873UxZJC3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LC920CR873UxZJC3 .error-icon{fill:#552222;}#mermaid-svg-…

BUUCTF 還原大師 1

題目描述: 我們得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,問號部分是未知大寫字母,為了確定這個神秘字符串,我們通過了其他途徑獲得了這個字串的32位MD5碼。但是我們獲得它的32位MD5碼也是殘缺不全,E903???4D…

【Vue3】自動引入插件-`unplugin-auto-import`

Vue3自動引入插件-unplugin-auto-import,不必再手動 import 。 自動導入 api 按需為 Vite, Webpack, Rspack, Rollup 和 esbuild 。支持TypeScript。由unplugin驅動。 插件安裝:unplugin-auto-import 配置vite.config.ts(配置完后需要重啟…

迪瑞克斯拉算法 — 優化

在上一篇迪瑞克斯拉算法中將功能實現了出來,完成了圖集中從源點出發獲取所有可達的點的最短距離的收集。 但在代碼中getMinDistanceAndUnSelectNode()方法的實現并不簡潔,每次獲取minNode時,都需要遍歷整個Map,時間復雜度太高。這…

stable diffusion安裝包和超火使用文檔及提示詞,數字人網址

一:文生圖、圖生圖 1:stable diffusion:對喜歡二次元、美女小姐姐、大眼萌妹的人及其友好哈哈(o^^o) 1):關于安裝包和模型包: 鏈接:https://pan.baidu.com/s/11_kguofh76gwhTBPUipepw 提取碼…

HTML詳解連載(5)

HTML詳解連載(5) 專欄鏈接 [link](http://t.csdn.cn/xF0H3)下面進行專欄介紹 開始嘍行高:設置多行文本的間距屬性名屬性值行高的測量方法 行高-垂直居中技巧 字體族屬性名屬性值示例擴展 font 復合屬性使用場景復合屬性示例注意 文本縮進屬性…

阿里云國際站對象儲存OSS的常見問題?

1.什么是阿里云OSS? 阿里云對象存儲服務OSS(Object Storage Service),是阿里云提供的海量、安全、低成本、高持久性的云存儲服務,并可無限擴展。其數據設計持久性不低于99.9999999999%(12個9)&a…

UG NX二次開發(C#)-CAM自定義銑加工的出口環境

文章目錄 1、前言2、自定義銑削加工操作3、出錯原因4、解決方案4.1 MILL_USER的用戶參數4.2 采用自定義銑削的方式生成自定義的dll4.2 配置加工的出口環境4.3 調用dll5、結論1、前言 作為一款大型的CAD/CAM軟件, UG NX為我們提供了豐富的加工模板,通過加工模板能直接用于生成…

oracle怎樣給某個普通用戶授予殺自己用戶會話的權限

一 問題描述 想給某個普通用戶授予殺掉自己會話的權限 二 解決辦法 2.1 用sys用戶創建殺會話的存儲過程 create or replace procedure scott_p_kill_session( v_sid number, v_serial number )asv_varchar2 varchar2(100);beginif v_sid is not null and v_serial is not n…