Nginx 是一臺高性能 Web 服務器,它使用了很是少的系統資源。css
1、安裝
一、安裝centos中安裝ngnixhtml
一、使用rpm來安裝 sudo yum install nginx 二、編譯二進制版原本安裝 sudo vi /etc/yum.repos.d/nginx.repo 執行安裝 sudo yum install nginx
2、配置指南node
基本配置格式。
Nginx 全局配置參數
使用 include 文件。
HTTP 的 server 部分
虛擬服務器部分。
location一一-where, when, how
mail的serer 部分。
完整的示例配置文件。
一、Nginx 全局配置參數nginx
全局配置:就是設置對整個ngnix全部地方都生效的配置正則表達式
例:centos
user nobody; #配置用戶和組 worker_processes 1; #容許生成的進程數,默認爲1 error_log logs/error.log; #錯誤日誌路徑。 error_log logs/error.log notice; #錯誤日誌路徑,通知級別。 error_log logs/error.log info; #錯誤日誌路徑,信息級別。 error_log logs/error.log debug; #錯誤日誌路徑,debug級別修改編譯時進行配置。 pid logs/nginx.pid; #指定 nginx 進程運行文件存放地址 events { use /dev/proll #事件驅動模型select|poll|kqueue|epoll|resig worker_connections 1024; #最大鏈接數,默認爲512 }
二、使用 include 文件。服務器
http { include mime.types; #文件擴展名與文件類型映射表 server {} }
mime.types文件內容app
types { text/html html htm shtml; text/css css; text/xml xml; 等等 }
三、HTTP 的 server 部分socket
一、客戶端指令
二、文件I/O指令:
三、Hash指令:爲變量分配內存
四、socket指令:tcp
四、虛擬服務器部分
任何由關鍵字server開始的部分都被稱做「虛擬機服務器」部分,server的做用是根據不一樣的server_name指令邏輯分割資源,listen指定具體的IP地址/端口組合或者Unix域套接字路徑:
例:
listen address[:port] listen port listen unix:path;
五、Locations-where,when,how
location指令能夠用於server部分,用於對匹配的url進行重定向、訪問控制等。
= 精準匹配並終止搜索
~ 區分大小寫
~* 不區分大小寫
^~ 最佳匹配,對匹配的不在進行下面的匹配了優先級高於正則表達式
完整示例:
user www; //worker 進程的用戶和組
worker_processes 12; //啓用的進程
error_log /var/log/nginx/error.log; //記錄錯誤的級別 debug info notice warn error、crit alert emerg
pid /var/run/nginx . pid; //記錄主進程id的文件
events { use /dev/poll; worker_connections 2048; } http { include /opt/local/etc/ng nx/mime.types; #文件擴展名與文件類型映射表 default_type application/octet-stream; #指定默認處理的文件類型能夠是二進制 sendfile on; #容許文件複製 tcp_push on ; #它可以使得 Nginx 個數據包中嘗試發送響應頭以及在數據包中發送 個完整的文件,配合sendfile on;使用 tcp_nodelay on; #啓用或者禁用 TCP NODELAY 選項,用於 keep-alive 鏈接 keepalive_timeout 65; #該指令指定 keep-alive 鏈接持續多久 個參數也能夠設置,用於在響應頭中設置「 keepalive 」頭 server_names_hash_max_size 1024 ; #該指令指定 server_name 散列表的最大大小 server { #則使用default_server.若是沒有指定default_server,則會選擇第一個可用的server.咱們能夠指定對於沒有匹配的host值時,返回錯誤到客戶端.能夠用來防止別人把垃圾流量轉到你的網站。 listen 80 ; #指定端口 return 444; } server { listen 80 ; server_name www.example.com; #指令邏輯分割的資源 location / { try_ files $uri $uri/ @mongrel; #此處表示會匹配/ 目錄下的全部文件進行處理而後返回給/ url 表示其餘 1.文件/opt/html/images/test.gif 2.文件夾 /opt/html/images/test.gif/下的index文件 3. 請求127.0.0.1/images/default.gif 4.其餘注意事項 1.try-files 若是不寫上 $uri/,當直接訪問一個目錄路徑時,並不會去匹配目錄下的索引頁 即 訪問127.0.0.1/images/ 不會去訪問 127.0.0.1/images/index.html location @mongrel { #若是匹配不上的url就使用這個 proxy_pass http : //127.0.0.1:8080; } } }