nginx一:安装和基本应用
Nginx:
目錄
Nginx:... 1
NGINX簡介和安裝... 1
網站... 1
全稱... 2
二次開發版... 2
Nginx的特性... 2
基本功能... 2
web服務相關的功能... 2
Nginx的基本架構:... 3
模塊類型... 3
nginx主要用途... 3
nginx安裝配置... 3
編譯安裝... 3
前期準備... 3
從官網獲取源碼包... 4
查看編譯幫助文檔... 4
安裝... 4
啟動NGINX. 5
NGINX配置文件... 5
配置文件組成... 5
配置文件配置指令... 6
配置文件結構... 6
全局配置網段:main block. 6
事件驅動配置... 6
http配置段... 6
配置文件簡介... 7
main配置段... 7
NGINX簡介和安裝
網站
http://nginx.org/, C10k;
http://www.nginx.com
全稱
完整寫法engine X:簡寫為nginx
二次開發版
二次開發版tengine(淘寶), OpenResty
Nginx的特性
- 模塊化設計,所以較好擴展性;
- 高可靠性
master/worker兩級架構,master主控進程,worker為子進程,每個worker都有自己的 核心模塊例如為了實現http功能有ht_core,和非核心模塊例如ht_proxy,ht_fastcgi
- 支持熱部署
不停機更新配置文件、更換日志、更新服務器程序版本;
- 低內存消耗
10000個keep-alive連接模式下的非活動連接(保持連接,但是沒有數傳輸)僅消耗2.5M內存;
- 支持 event-driven, aio, mmap;
- 靜態資源的web服務器;
- http協議的反向代理服務器;
- pop3, smpt, imap4等郵件協議的反向代理;
- 能緩存打開的文件(元數據)、
- 支持FastCGI(php-fpm), uWSGI(Python Web Framwork)等協議
- 模塊化(非DSO機制),著名模塊有:過濾器zip,SSI,SSL;
- 虛擬主機(server)
- keepalive
- 訪問日志(支持基于日志緩沖提高其性能)
- url rewirte
- 路徑別名
- 基于IP及用戶的訪問控制
- 支持速率限制及并發數限制;
- master/worker
基本功能
web服務相關的功能
Nginx的基本架構:
a) 一個master進程,可生成一個或多個worker進程;
b) master: 加載配置文件、管理worker進程、平滑升級,...
c) worker:http服務,http代理,fastcgi代理,...
模塊類型
- 核心模塊:core module
- 標準模塊:
a) Standard HTTP modules
b) Optional HTTP modules
c) Mail modules
- 第三方模塊:3rd party modules
- 靜態資源的web服務器
- http服務器反向代理
nginx主要用途
nginx安裝配置
使用yum info nginx查看相關信息,顯示沒有匹配的軟件包可以列出,說明nginx并沒有被收錄至centos發行光盤中。所以可以使用epel源來安裝nginx。
編譯安裝
前期準備
安裝開發組件
yum -y groupinstall "Development Tools" "Server Platform Development"
安裝PCRE,zlib,openssl
yum -y install pcre zlib openssl pcre-devel pcre-devel openssl-devel
PCRE – Supports regular expressions. Required by the NGINX Core and Rewrite modules.
zlib – Supports header compression. Required by the NGINX Gzip module.
OpenSSL – Supports the HTTPS protocol. Required by the NGINX SSL module and others.
從官網獲取源碼包
$ wget https://nginx.org/download/nginx-1.14.2.tar.gz
$ tar zxf nginx-1.14.2.tar.gz #解壓
$ cd nginx-1.14.2
查看編譯幫助文檔
./config --help #返回如下圖結果
注意有些模塊前帶有--without,這代表此模塊默認加載。有些模塊前帶有--with這代表此模塊默認不被加載需要在編譯的時候使用--with-*_module編譯。
安裝
./configure
--prefix=/usr/local/nginx
--conf-path=/etc/nginx/nginx.conf
--user=nginx
--group=nginx
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--with-http_ssl_module
--with-http_stub_status_module
--with-http_gzip_static_module
--with-debug
make &&make install
啟動NGINX
/usr/local/nginx/sbin/nginx
這個報錯是因為我在編譯安裝時指定運行worker的用戶為nginx。然而我沒有在系統中創建這個用戶。
NGINX配置文件
配置文件組成
- 主配置文件:nginx.conf
- 注意:
a) 除去上圖所有文件外,nginx配置文件還包括在nginx.conf中使用include指令指定的配置文件。
b) 上圖中有類似A.conf和A.conf.default的配置文件。其中A.conf.default,是默認的配置文件
配置文件配置指令
- 切記:配置指令必須以分號結尾
- 格式:Directive value1 [value2...];
- 變量:支持使用變量
a) 內置變量:由模塊引入;
b) 自定義變量:
l set variable value;
c) 引用變量:$variable
配置文件結構
全局配置網段:main block
事件驅動配置
event {
...
}
http配置段
http {
...
server {
...
server_name
root
alias
location /uri/ {
}
...
}
server {
...
}
}
配置文件簡介
main配置段
正常運行必備的配置
優化性能相關的配置
用于調試、定位問題的配置
- 正常運行必備的配置:由核心模塊引入的配置
a) user USERNAME [GROUPNAME];
指定用于運行worker進程的用戶和組;
eg:user nginx nginx;
b) pid /PATH/TO/PID_FILE;
指定nginx進程的pid文件路徑;
eg:pid /var/run/nginx.pid;
c) worker_rlimit_nofile number;
指定一個worker進程所能夠打開的最大文件數量;
- 性能優化相關的配置:
a) worker_processes auto|number;
worker進程的個數;通常應該為物理CPU核心數量減1;
可以為"auto",實現自動設定;
b) worker_cpu_affinity auto|CPUMASK CPUMASK ...;
設置worker與CPU的親和力。通過該指令可以將一個worker進程綁定到指定CPU。
c) worker_priority number;
通過nice值,設置worker進程的優先級,從-20(最高)到19(最低),默認為0。 注意內核的有優先級為-5,因此不建議設值<=-5
- 調試、定位問題的配置:
a) daemon off|on;
是否以守護進程方式啟動nignx;
eg :daemon off
b) master_process on|off;
是否以master/worker模型運行nginx,設置為off將不啟動worker進程;
c) error_log file [level];
l file:其值可以是如下幾種
PATH/TO/LOG:記錄日志文件的位置。s
Stderr:將日志處處到標準輸出
syslog:server=adderess:將日志發往指定的日志服務器
memory:size:將日志輸出到內存中
l level:設定日志級別
debug, info, notice, warn, error, crit, alert, or emerg
注意:錯誤日志文件及其級別;出于調試的需要,可以設定為debug;但debug僅在編譯時使用了“--with-debug”選項時才有效;
總結
以上是生活随笔為你收集整理的nginx一:安装和基本应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国移动携手华为百度展示5G应用,实现8
- 下一篇: 量化投资_Multicharts数组操作