nginx知識梳理及配置詳解

軟件開發全文檔獲取:點我獲取

nginx安裝

#nginx安裝
yum -y install gcc pcre-devel openssl-devel			#依賴包
useradd -s /sbin/nologin  nginx						
./configure
--prefix=/usr/local/nginx							#指定安裝目錄
--user=nginx										#指定用戶
--with-http_ssl_module								#開啟加密功能
make && make install								#編譯及安裝

nginx腳本啟動

/usr/local/nginx/sbin/nginx							#啟動
/usr/local/nginx/sbin/nginx	 -s stop				#關閉
/usr/local/nginx/sbin/nginx  -s reload				#從新加載配置-V						#查看軟件信息-t						#測試配置文件

nginx文件

/usr/local/nginx/html								#測試頁面
#nginx配置文件
#Nginx的默認訪問日志文件為/usr/local/nginx/logs/access.log
#Nginx的默認錯誤日志文件為/usr/local/nginx/logs/error.log
#PHP默認錯誤日志文件為/var/log/php-fpm/www-error.log
#-with-http_ssl_module參數,啟用加密模塊,對于需要進行SSL加密處理的站點添加ssl相關指令(設置網站需要的私鑰和證書
nginx/conf/nginx.conf
server {listen		1.1.1.1:80								#監聽IP地址與端口listen       80;									#監聽端口server_name  localhost;								#網站域名
#地址重寫格式【總結】
#rewrite 舊地址 新地址 [選項];
#last 不再讀其他rewrite
#break 不再讀其他語句,結束請求
#redirect 臨時重定向
#permanent 永久重定向rewrite  /a.html /b.html redirect;					#將a網頁重定向到b網頁并地址跳轉rewrite ^/ http://www.baidu.com;					#訪問此地址全部從定向到baidurewrite ^/(.*)$  http://www.baidu.com/$1;			#訪問此地址下面的網頁從定向baidussl_certificate      cert.pem;         				#這里是證書文件ssl_certificate_key  cert.key;        				#這里是私鑰文件auth_basic "Input Password:";                       #認證提示符信息auth_basic_user_file  "/usr/local/nginx/pass";      #認證的密碼文件location / {root   html;									#指定網站根路徑index  index.html index.htm;}#這里,~符號代表正則匹配,*符號代表不區分大小寫if ($http_user_agent ~* firefox) {           		    #識別客戶端firefox瀏覽器rewrite ^(.*)$  /firefox/$1;}}

lnmp環境

#部署lnmp平臺解決動態數據,動態數據為網站解析代碼后返回數據
yum -y install gcc openssl-devel pcre-devel						#nginx依賴環境
yum -y install php php-mysql php-fpm							#php及依賴環境
yum -y install   mariadb   mariadb-server   mariadb-devel		#mariadb及依賴環境
systemctl start mariadb php-fpm#php-fpm配置文件
/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000											#php端口號
pm.max_children = 32											#最大進程數
pm.start_servers = 15											#最小進程數#修改nginx配置文件
nginx/conf/nginx.conf
location / {root   html;index  index.php  index.html   index.htm;
#設置默認首頁為index.php,當用戶在瀏覽器地址欄中只寫域名或IP,不說訪問什么頁面時,服務器會把默認首頁index.php返回給用戶}location  ~  \.php$  {root           html;fastcgi_pass   127.0.0.1:9000;    #將請求轉發給本機9000端口,PHP解釋器fastcgi_index  index.php;include        fastcgi.conf;       #加載其他配置文件}

nginx實現web反向代理

一:高可用一臺宕機,服務不會停,
二:負載均衡(輪詢,哈希,權重,隨機等)。 分布式;各個服務器執行不同功能,來完成一件事。

/nginx/conf/nginx.conf
.. ..
http {
.. ..
#使用upstream定義后端服務器集群,集群名稱任意(如webserver)
#使用server定義集群中的具體服務器和端口
upstream webserver {
#通過ip_hash設置調度規則為:相同客戶端訪問相同服務器ip_hash;server 192.168.2.100 weight=1 max_fails=1 fail_timeout=30;server 192.168.2.200 weight=2 max_fails=2 fail_timeout=30;server 192.168.2.101 down;}
#weight設置服務器權重值,默認值為1
#max_fails設置最大失敗次數,測試服務器幾次才確認服務器失敗
#fail_timeout設置失敗超時時間,單位為秒
#down標記服務器已關機,不參與集群調度
.. ..
server {listen        80;server_name  localhost;location / {
#通過proxy_pass將用戶的請求轉發給webserver集群proxy_pass http://webserver;}

nginx常見問題

#自定義錯誤頁面
nginx/conf/nginx.conf
.. ..
charset utf-8;                    #僅在需要中文時修改該選項
error_page   404  /404.html;      #自定義錯誤頁面
.. ..
nginx/html/404.html			      #定義錯錯誤頁面
#200			一切正常
#301			永久從定向
#302			臨時從定向
#401			用戶或密碼錯誤
#403			禁止訪問(客戶端IP地址被拒接)
#404			文件不存在
#414			請求URL頭過長
#500			服務器內部錯誤
#501			bad gateway

查看服務器狀態 編譯安裝時使用--with-http_stub_status_module開啟狀態頁面模塊

… …
location /status {stub_status on;#allow IP地址;#deny IP地址;}
… …
curl  http://192.168.4.5/status
Active connections: 1 
server accepts handled requests10 10 3 
Reading: 0 Writing: 1 Waiting: 0
#Active connections:當前活動的連接數量。
#Accepts:已經接受客戶端的連接總數量。
#Handled:已經處理客戶端的連接總數量。(一般與accepts一致,除非服務器限制了連接數量)。
#Requests:客戶端發送的請求數量。
#Reading:當前服務器正在讀取客戶端請求頭的數量。
#Writing:當前服務器正在寫響應信息的數量。
#Waiting:當前多少客戶端在等待服務器的響應

優化nginx并發量

ad -n 2000 -c 2000 http://192.168.1.10 		#ad高并發測試
nginx/conf/nginx.conf
.. ..
worker_processes  2;                    	#與CPU核心數量一致
events {
worker_connections 65535;       		    #每個worker最大并發連接數
}
.. ..
#優化Linux內核參數(最大文件數量)
ulimit -a									#查看所有屬性值
ulimit -Hn	100000							#設置硬限制(臨時規則)
ulimit -Sn	100000							#設置軟限制(臨時規則)
vim  /etc/security/limits.conf.. ..
*               soft    nofile            100000
*               hard    nofile            100000
#該配置文件分4列,分別如下:
#用戶或組    硬限制或軟限制    需要限制的項目   限制的值

優化nginx數據包頭緩存

.. ..
http {
client_header_buffer_size    1k;        #默認請求包頭信息的緩存    
large_client_header_buffers  4 4k;      #大請求包頭部信息的緩存個數與容量
.. ..
}

瀏覽器本地緩存靜態數據

server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires        30d;            #定義客戶端緩存時間為30天
}
}

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

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

相關文章

【數據庫篇】關系模式的表示——(1)問題的提出

1、關系模式的表示 R:表示關系的名字比如:sc選課表,student學生表。 U:表示一個關系模式的所有屬性,比如student表:U(sno,sname,sage,ssex)。 …

LedControl 庫說明文檔

LedControl 庫最初是為基于 8 位 AVR 處理器的 Arduino 板編寫的。但由于該代碼不使用處理器的任何復雜的內部功能,因此具有高度可移植性,并且應該在任何支持 和 功能的 Arduino(類似)板上pinMode()運行digitalWrite() 。 單個 M…

C練習題_3

一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中,選出一個正確的答案,并將所選項前的字母填寫在答題紙的相應位置上。 以下正確的C語言自定義標識符是() A. la B. 2a C. do D. a.12 2.在C語言中,錯…

C# 之對象與Xml序列化工具類

寫在前面 一個常用的對象與Xml序列化工具類&#xff0c;使用系統類庫System.Xml&#xff0c;序列化時需要注意只能將對象的公共字段和讀/寫屬性轉換為 XML。不轉換方法、索引器、私有字段或只讀屬性。另外XmlSerializer 類無法序列化ArrayList數組和List<T>數組。 using…

3、Qt使用windeploy工具打包可執行文件

新建一個文件夾&#xff0c;把要打包的可執行文件exe拷貝過來 點擊輸入框&#xff0c;復制一下文件夾路徑 點擊電腦左下角&#xff0c;找到Qt文件夾&#xff0c; 點擊打開 “Qt 5.12.0 for Desktop” &#xff08;我安裝的是Qt 5.12.0版本&#xff09; 輸入“cd bin”&#xff…

springsecurity5.7.x和springsecurity6.x配置文件對比

springsecurity5和springsecurity6如何要實現多種登錄方式&#xff0c;自定義登錄方式都是一樣的操作步驟&#xff0c;主要有四個步驟。 一、自定義登錄用戶實體實現springsecurity中的UserDetails接口 二、自定義登錄用戶實現類實現springsecurity中的UserDetailsService接口 …

vivado產生報告閱讀分析20-QOR

Report QoR Suggestions report_qor_suggestions 命令是處理 QoR 建議對象時使用的主要命令。 QoR 建議對象會創建命令和屬性來改善設計的時序性能&#xff08; 欲知詳情 &#xff0c; 請參閱 QoR 建議 &#xff09; 。 report_qor_suggestions 命令可執行兩項任務 &am…

代碼隨想錄-刷題第七天

454. 四數相加II 題目鏈接&#xff1a;454. 四數相加II 思路&#xff1a;哈希法。使用map集合&#xff0c;key存放ab的值&#xff0c;value存放ab出現的次數。使用兩層循環&#xff0c;循環前兩個數組&#xff0c;找出ab&#xff0c;對map賦值。再用兩層循環&#xff0c;遍歷…

唯創知音WT2605C-A001音頻藍牙語音芯片:小巧體積,高品質音頻播放的創新

在現今的科技繁榮時代&#xff0c;音頻技術作為人類感知世界的重要方式&#xff0c;已經變得越來越重要。唯創知音WT2605C-A001音頻藍牙語音芯片&#xff0c;以其卓越的特性和創新性&#xff0c;正在為音頻技術領域帶來一場革命。 首先&#xff0c;這款芯片以其極小的體積—僅…

chatGPT4機器學習數據后最終保留在機器里的是什么? 機器是怎么產生智能的? TensorFlow沒有直接開發出類似GPT-4這樣的模型

機器學習數據后最終保留在機器里的是機器學習模型。機器學習模型是機器學習系統中的核心&#xff0c;它是機器學習系統能夠進行推理和預測的基礎。 機器學習模型通常由參數組成。參數是機器學習模型的權重和偏差。機器學習系統通過訓練來學習這些參數。訓練是指讓機器學習系統…

webpack 打包優化

在vue.config.js中配置 下載 uglifyjs-webpack-plugin 包 const { defineConfig } require("vue/cli-service"); var path require("path");module.exports defineConfig({transpileDependencies: true,filenameHashing: false, // 去除Vue打包后.cs…

0003Java程序設計-ssm基于微信小程序的家教信息管理系統

文章目錄 摘要目 錄系統實現開發環境 編程技術交流、源碼分享、模板分享、網課分享 企鵝&#x1f427;裙&#xff1a;776871563 摘要 本文講述了基于微信小程序的家教信息管理系統的設計與實現。結合線上管理的特點&#xff0c;分析了家教信息管理系統的現狀&#xff0c;給出…

外匯天眼:香港監管機構對AMTD Global Markets Limited啟動法律訴訟

香港證監會&#xff08;SFC&#xff09;已經啟動了法律程序&#xff0c;要求首次審裁法院調查AMTD Global Markets Limited&#xff08;AMTD&#xff0c;目前以orientiert XYZ Securities Limited為名&#xff09;及其前高管在與首次公開發行&#xff08;IPO&#xff09;相關的…

【經典小練習】修改文件中的數據

文章目錄 &#x1f339;例子&#x1f33a;思路&#x1f6f8;方法一?報錯解決 &#x1f6f8;方法二 &#x1f339;例子 文本文件中有下面的數據 2-1-9-4-7-8 將文件中的數據進行排序&#xff0c;變成下面的數據 1-2-4-7-8-9 &#x1f33a;思路 要對這些數據進行排序&#xf…

智慧樓宇可視化視頻綜合管理系統,助力樓宇高效安全運行

隨著互聯網技術的進步和發展&#xff0c;智能化的樓宇建設也逐步成為人們選擇辦公場所是否方便的一個重要衡量因素。在智能化樓宇中&#xff0c;安全管理也是重要的一個模塊。得益于互聯網新興技術的進步&#xff0c;安防視頻監控技術也得到了快速發展并應用在樓宇的安全管理中…

Python武器庫開發-前端篇之html概述(二十八)

前端篇之html概述(二十八) html概述 HTML5是構建Web內容的一種語言描述方式。HTML5是互聯網的下一代標準&#xff0c;是構建以及呈現互聯網內容的一種語言方式&#xff0e;被認為是互聯網的核心技術之一。HTML產生于1990年&#xff0c;1997年HTML4成為互聯網標準&#xff0c;…

虹科Pico汽車示波器 | 汽車免拆檢修 | 2011款瑞麒M1車發動機起動困難、加速無力

一、故障現象 一輛2011款瑞麒M1車&#xff0c;搭載SQR317F發動機&#xff0c;累計行駛里程約為10.4萬km。該車因發動機起動困難、抖動、動力不足、熱機易熄火等故障進廠維修。用故障檢測儀檢測&#xff0c;發動機控制單元&#xff08;ECU&#xff09;中存儲有故障代碼“P0340相…

【Python 訓練營】N_2 打印乘法口訣表

題目 借助格式化輸出長方形、左上三角形、右上三角形、左下三角形、右下三角形5種格式的九九乘法口訣表。 答案 長方形格式 for i in range(1,10):for j in range(1,10):print(%d*%d%2d%(i,j,i*j),end ) # %2d 整數站兩個字節print()左上三角形 for i in range(1,10):for …

Vue框架學習筆記——事件處理

文章目錄 前文提要事件處理的解析過程樣例代碼如下&#xff1a;效果展示圖片&#xff1a;v-on:click"響應函數"v-on:click簡寫形式響應函數添加響應函數傳參占位符"$event"注意事項 前文提要 本人僅做個人學習記錄&#xff0c;如有錯誤&#xff0c;請多包…

2、git進階操作

2、git進階操作 2.1.1 分支的創建 命令參數含義git branch (git checkout -b)<new_branch> <old_branch>表示創建分支-d <-D>刪除分支 –d如果分支沒有合并&#xff0c;git會提醒&#xff0c;-D強制刪除-a -v查看分支-m重新命名分支commit id從指定的commi…