国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx 介紹及日常管理的詳解

2024-08-30 12:29:15
字體:
來源:轉載
供稿:網友

Nginx 介紹及日常管理的詳解

Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好.中國大陸使用nginx網站用戶有:新浪、網易、 騰訊等。本文簡要描述了Nginx的基本特性及其配置文件的簡單描述。

一、Nginx的工作進程

1、一個主進程:  主進程的主要目的是讀取和評估配置,啟動、終止及維護工作進程以及創建、綁定及關閉套接字。 2、多個工作進程:  工作進程處理web請求。nginx的采用了基于事件的模型和操作系統相關的機制,有效地分配工作進程之間的請求。  負責解析http協議;提供反向代理及過濾功能;nginx任何能完成的其它任務;  工作進程的數量被定義在配置文件中,可以使用配置文件定義固定的數量,或根據可用的CPU內核數實現自動調整其數量。3、緩存加載器(cache loader):  檢查緩存存儲中的緩存對象;  使用緩存元數據建立內存數據庫;  接收、傳入并處理來自客戶端的連接;4、緩存管理器(cache manager):  緩存的失效及過期檢驗;5、基于配置文件定義Nginx的工作方式  nginx的工作方式及其模塊的工作是在配置文件中確定的。  缺省情況下,其配置文件為nginx.conf,通常位于/usr/local/nginx/conf, /etc/nginx, 或者/usr/local/etc/nginx目錄下。

二、Nginx特性

1、Nginx的模塊化特性    Nginx服務器與Apache httpd類似,采用了基于模塊化的構建方式。    在安裝部署Nginx服務器時,一定要遵循:最小化模塊安裝,以節省無用模塊對Nginx的性能影響及占用系統資源。    a、從功能上劃分      Nginx核心模塊:包括Nginx的內核模塊和事件驅動模塊      http服務器模塊:這類模塊包括三類模塊,即HTTP的內核模塊和標準模塊以及可選的HTTP模塊    b、從發布模塊的方式來劃分      官方模塊      第三方模塊    c、從模塊的可選項來劃分      必選模塊(Main和Events)      可選模塊2、Nginx功能特性    模塊化設計、較好擴展性    高可靠性      master-->worker    低內存消耗      10000個keep-alive連接在Nginx僅消耗2.5MB    支持熱部署      不停機而更新配置文件、更換日志文件、更新服務器程序版本  基本功能:    靜態資源的web服務器,能緩存打開的文件描述符;    http, smtp, pop3協議的反向代理服務器,緩存、負載均衡;    支持FastCGI (fpm);    模塊化,非DSO機制,過濾器zip,SSI及圖像大小調整;    支持SSL;    非阻塞、事件驅動、一個master生成一個或多個worker, 每個worker響應n個請求;  擴展功能:    基于名稱和IP的虛擬主機;    支持keepalive    支持平滑升級    定制訪問日志 ,支持使用日志緩沖區提高日志存儲性能    支持url rewrite    支持路徑別名    支持基于IP及用戶的訪問控制    支持速率限制,支持并發數限制  Nginx的基本架構:    一個master進程,生成一個或多個worker    事件驅動: epoll, kqueue, /dev/poll (event ports)      消息通知:select, poll, rt signals    支持sendfile, sendfile64    支持AIO    支持mmap  模塊類型:    核心模塊    Standard HTTP modules    Optional HTTP modules    Mail modules     3rd party modules

三、Nginx的啟動、停止、配置文件重新裝載

1、啟動  直接使用命令啟動,示例,-c后面跟上配置文件路徑及名字,如果忽略-c,則使用缺省的配置文件  # /usr/sbin/nginx -c /etc/nginx/nginx.conf  使用服務方式啟動,示例如下  # service nginx start2、啟動后的常用管理語法  nginx -s signal  其中signal可以為下列值    stop — fast shutdown    quit — graceful shutdown    reload — reloading the configuration file    reopen — reopening the log files3、nginx的停止  stop — 快速停止,粗暴模式,不再接受新請求,已經處理的請求被強制關閉,示例如下    # /usr/sbin/nginx -s stop  quit — 優雅停止,不再接受新請求,等待當前的工作進程完成當前的服務器請求,并停止nginx    # /usr/sbin/nginx -s quit  通過服務方式關閉nginx    # service nginx stop4、配置文件重新裝載  reload — 重新載入配置文件    nginx配置文件的任意變更,不會被立即生效,需要使用重載命令或重啟nginx     一旦主進程接收到重新加載配置的信號,它檢查新的配置文件的語法正確性,并嘗試應用新的配置。    否則,主進程回滾所做的更改,并繼續使用舊的配置文件工作。    舊的工作進程,接收命令關閉, 停止接受新的連接,并繼續服務于當前的請求,直至當前請求服務完畢后,舊的工作進程退出    進程信號可以被發送到nginx,通過Linux/Unix的 kill工具來殺死進程。    在這種情況下的帶有進程ID的信號被直接發送到一個進程。    缺省情況下,nginx的主進程PID被寫入到位于/usr/local/logs或者/var/run目錄的nginx.pid文件。    例如,如果主進程ID是1628,發送nginx正常關機的退出信號,則執行:    kill -s QUIT 1628  通過服務方式重載配置文件    # service nginx reload

四、Nginx配置文件結構

1、配置說明  a、nginx配置文件由不同模塊組成,通過模塊化的方式實現不同的功能。  b、配置指令分為簡單指令和塊指令。一個簡單的指令,包括名稱,用空格分隔參數,并用分號(;)結束。  c、一個塊指令由一個或多個簡單具有相同的結構簡單指令組合而成,使用一組用{}括號括起來表示塊結束。  d、上下文:一個塊的指令包含有大括號其他指令,它被稱為上下文(例如:事件,HTTP,服務器,和位置)。     放置在配置文件中的任何上下文以外的指令都被認為是在主上下文。  e、檢查配置文件語法: nginx -t    f、指定nginx要加載的配置文件:nginx -c  2、配置文件構成  Nginx配置文件結構主要由以下幾部分構成。  ......  events  #Events用于配置IO模型,如epoll、kqueue、select或poll等,它們是必備模塊。    {         ......    }  http       #http上下文專用于配置用于http的各模塊          {        #包括客戶端類指令,文件IO類指令,hash類指令,套接字類指令等      ......            server   #用于定義虛擬服務器相關的屬性,常見的指令有backlog、rcvbuf、bind及sndbuf等        {         ......        }        server        {         ......        }     ......         }  3、基本的nginx.conf配置描述# more /etc/nginx/nginx.conf#user nobody;    #指定運行worker進程的用戶和組worker_processes 1; #worker線程的個數;通常應該為物理CPU核心個數減1;#error_log logs/error.log;    #配置錯誤日志文件位置及日志記錄級別#error_log logs/error.log notice;#可用于main、http、server及location上下文中#error_log logs/error.log info; #語法格式為error_log file |stderr [debug|info|notice|warn|error|crit|alert|emerg]#pid    logs/nginx.pid;     #指定pid存放路徑  events {  worker_connections 1024; 每個worker進程所能夠響應的最大并發請求數;}http {  include    mime.types;  default_type application/octet-stream;  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '  #         '$status $body_bytes_sent "$http_referer" '  #         '"$http_user_agent" "$http_x_forwarded_for"';  #此部分用于設置訪問日志的格式及位置  #access_log logs/access.log main;  sendfile    on;  #文件發送  #tcp_nopush   on;  #keepalive_timeout 0;  keepalive_timeout 65; #保持連接的超時時長,默認為65s  #gzip on;  #是否開啟gzip壓縮  server {    listen    80;    #定義監聽的端口 Author:Leshami    server_name localhost; #定義監聽的主機 Blog :http://blog.csdn.net/leshami    #charset koi8-r;    #定義字符集    #access_log logs/host.access.log main; #訪問日志文件存放路徑    location / {   #location通常用于server上下文中,用于設定某URI的訪問屬性。location可以嵌套。       root  html; #默認首頁文件位置,此處當前為相對路徑,/etc/nginx/html      index index.html index.htm; #首頁文件順序,如果找不到index.html,則找index.htm    }    #以下部分根據http狀態碼重定向錯誤頁面    #error_page 404       /404.html;    # redirect server error pages to the static page /50x.html    #    error_page  500 502 503 504 /50x.html;    location = /50x.html {      root  html;    }  }}

五、獲取Nginx幫助

[root@wms ~]# nginx -hnginx version: nginx/1.8.0Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]Options: -?,-h     : this help -v      : show version and exit -V      : show version and configure options then exit -t      : test configuration and exit -q      : suppress non-error messages during configuration testing -s signal   : send signal to a master process: stop, quit, reopen, reload -p prefix   : set prefix path (default: /etc/nginx/) -c filename  : set configuration file (default: /etc/nginx/nginx.conf) -g directives : set global directives out of configuration file

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 远安县| 保亭| 奉贤区| 高雄市| 神农架林区| 萝北县| 疏附县| 奈曼旗| 仙桃市| 洛隆县| 两当县| 南昌县| 姚安县| 广丰县| 东丰县| 巴林右旗| 芜湖县| 化隆| 桃源县| 枝江市| 普安县| 南安市| 克拉玛依市| 酒泉市| 林口县| 南江县| 庆阳市| 红河县| 日土县| 永年县| 健康| 巨鹿县| 嘉祥县| 宿迁市| 桐庐县| 通山县| 砚山县| 临漳县| 华安县| 泗阳县| 乌兰察布市|