nginx學習筆記1

来源:http://www.cnblogs.com/linuxboke/archive/2016/04/20/5413410.html
-Advertisement-
Play Games

查看nginx編譯時參數的設定 使用nginx -V命令查看 可以使用nginx -h命令查看命令幫助 配置文件中將worker process綁定到cpu的特定內核上, vim /etc/nginx/nginx.conf 註意worker_cpu_affinity這個參數是對cpu多核的支持,上面 ...


Nginx是使用c語言編寫的,查看nginx編譯時參數的設定  使用nginx -V命令查看

 

可以使用nginx -h命令查看命令幫助

 

配置文件中將worker process綁定到cpu的特定內核上, vim /etc/nginx/nginx.conf

註意worker_cpu_affinity這個參數是對cpu多核的支持,上面表示4個process分別綁定到cpu內核的第1個 第2個 第1個 第2個(這個cpu只有兩個內核)

 

如果有4個內核就這樣設定

以此內推 8,16...  這樣做可以更好的利用系統資源(不過要註意了,其中一個內核壞掉,很可能是影響nginx性能的元凶)

 

配置文件中worker_rlimit_nofile這個參數是設定單個worker進程能最多打開多少個文件描述符(應該和ulimit -n的值保持一致,因為nginx對用戶請求的回答分配到各個worker進程有時是不均衡的),不過像nginx和haproxy這類服務已經會根據自身的需要自動調整了worker_rlimit_nofile了

 

worker_priority這個參數是設置worker process的進程優先順序的  範圍為[-20 19]數值越小,優先順序越高,  可以使用ps axo comm,pid,nice命令查看nginx進程優先順序(nice值)

補充:當各個進程運行時,每個進程會在cpu上來回切換運行直到各個進程完成任務,當一個進程在cpu上運行一定時間後(單位是ms),cpu會在等待的各個進程隊列中調度,優先順序越高的隊列就會被cpu優先調度,如此這些優先順序高的進程對cpu的使用越大

use epoll這個參數不必定義,nginx會自動選擇。

 

定義一臺虛擬主機最簡單的方式

root指定根文件路徑,server_name指定伺服器主機名,listen參數後面的格式為 IP:PORT,此處指定為監聽所有網卡地址的80埠, server_name後面可跟多個主機名(名稱可以使用通配符和正則表達式)

 

當在 listen 80 後面添加default_server時,在瀏覽器中輸入ip地址,預設就會訪問到該虛擬主機,當其它虛擬主機不能被請求到內容時使用預設的虛擬主機返回內容

 

location只能放置於server上下文中,location的配置說明

上面的定義,訪問www.c.com/images/1.jpg-->/data/imgs/images這個目錄下尋找1.jpg文件

 

上面的定義,訪問www.c.com/images/1.jpg-->/data/imgs這個目錄下找1.jpg文件,不過由於該虛擬主機沒有定義root,當訪問www.c.com會被重定向到default server上,所以root別忘記定義

 

index可以用在location,server,http中,設定預設搜索主頁

 

在虛擬主機中定義404頁,root選項必須有

 

為指定的uri配置訪問控制

 

為指定的uri提供認證功能

auth_basic 是取名字,auth_basic_user_file是指定保存用戶文件的路徑,此文件要藉助httpd的htpasswd命令創建,因此還得下載httpd

yum -y install httpd   

創建/etc/nginx/.passwd

-c 在頭次創建該文件時需添加, -m 指定使用md5加密  tom是創建的用戶

 

stub_status這個參數是nginx的web監控頁,在nginx -V 中看到了--with-http_stub_status_module這個選項才能使用此功能

註意上面的location後面的status後面如果加了/則在瀏覽器中也必須加/,否則會找不到資源

 

active connections 當前活動連接數,包含了等待伺服器發送response的連接

accepts 伺服器總共已經接受的連接數量

handled 伺服器總共已經處理的連接數,通常accepts和handled是相等的,如果不相等則可能是worker_connections受到了限制,應調大該值,worker_connection定義的是單個worker進程所能處理的最大客戶端請求數

requests 客戶端已經發起過的總請求數,requests應該大於accepts,因為一次連接上客戶端可以請求多個資源,但關閉了keepalive_timeout功能就會使兩者相等了

reading 有多少連接數中nginx正在讀取request header

writing  有多少連接數中nginx正在構建response給請求的客戶端

waiting 連接已建立,但客戶端還沒發出請求的數量

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如果哪天你忘記了線上MySQL資料庫的root密碼,怎麼辦? 大家往往會想到skip-grant-tables參數,具體步驟如下: 1. 關閉MySQL資料庫,因為root密碼忘記了,mysqladmin無法使用,此時,只能通過kill pid關閉程式。 在這裡,科普一下kill 和kill -9的 ...
  • 一、簡介 kattle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數據抽取高效穩定。它允許你管理來自不同資料庫的數據,通過提供一個圖形化的用戶環境來描述我們需要完成的功能。這裡使用的是pdi-ce-5.4.0.1-130。下載地址為http://com ...
  • 在ORACLE 資料庫中有一種方法可以實現級聯查詢 select * //要查詢的欄位 from table //具有子接點ID與父接點ID的表 start with selfid=id //給定一個startid(欄位名為子接點ID,及開始的ID號) connect by prior selfid ...
  • DCL(Data Control Language)是資料庫控制語言。 是用來設置或更改資料庫用戶或角色許可權的語句,包括(grant,deny,revoke等)語句。 在預設狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執行DCL ...
  • 1、MySQL基礎概念 mysql邏輯架構如下: 每個客戶端連接都會在伺服器中擁有一個線程,這個連接的查詢只會在這個單獨的線程中執行。 MySQL是分層的架構。上層是伺服器層的服務和查詢執行引擎,下層是存儲引擎。雖然有很多不同作用的插件API,但存儲引擎API還是最重要的。如果能理解MySQL在存儲 ...
  • 在本機遠程連接遠程Oracle服務的時候,寫瞭如下檢索語句 select * from sys_employee 結果集中出現了中文亂碼,但是遠程伺服器本身的PL/SQL檢索出來沒有問題 解決方案: 步驟一: select * from v$nls_parameters 獲取執行結果 步驟二:SEL ...
  • 上文介紹了Sphinx的工作原理,關於如何安裝的文章在網上有很多,筆者就不再覆述了,現在繼續講解Sphinx的配置文件,讓Sphinx工作起來。 數據源配置 先來看一份數據源的配置文件示例: 其中 source後面跟著的是數據源的名字,後面做索引的時候會用到; type:數據源類型,可以為MySQL ...
  • 第一天 SQL查詢語句 CMD——SQLPLUS 賬號 soctt 密碼 tiger,輸入完成後進入SQL資料庫,如圖顯示即連接成功。 連接成功後 ,我們首先設置一下基本界面, --設置 每列顯示的字元數 set LINES 1000;set pages 100; --清屏host cls SQL語 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...