介绍
Nginx HTTP服务器的特色及优点
a. 支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
b. 资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB
c. 可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
d. 具备Squid等专业缓存软件等的缓存功能
e. 支持异步网络I/O事件模型epoll
Nginx的主要企业功能
a. 使用Nginx运行HTML,JS,CSS,小图片等静态数据(此功能类似Lighttpd软件)
b. Nginx结合FastCGI运行php等动态程序(例如使用fastcgi_pass方式)
c. Nginx结合Tomcat/Resin等支持Java动态程序(常用的proxy_pass)
Nginx作为web服务器的主要应用场景包括:
a. 使用Nginx运行HTML,JS,CSS,小图片等静态数据(此功能类似Lighttpd软件)
b. Nginx结合FastCGI运行php等动态程序(例如使用fastcgi_pass方式)
c. Nginx结合Tomcat/Resin等支持Java动态程序(常用的proxy_pass)
一般情况下普通php引擎支持的并发连接参考为300-1000,Java引擎和数据库的并发连接参考值为300-1500.当然架构不同可能会有浮动
安装
编译安装
1
2
3
4
5
6
7
8
9
10
11
|
# 下载,这里是1.12版本 wget http: / / nginx.org / download / nginx - 1.12 . 2.tar .gz # 解压并进入目录 tar xf nginx - 1.12 . 2.tar .gz cd nginx - 1.12 . 2 # 三部曲 . / configure - - prefix = / application / nginx - 1.12 . 2 - - with - http_stub_status_module - - with - http_ssl_module make make install |
可能会遇到的故障
故障一:没有安装pcre或pcre-devel
会提示如下错误:
1
2
3
4
|
. / configure: error: the HTTP rewrite module requires the PCRE library. 2 You can either disable the module by using - - without - http_rewrite_module 3 option, or install the PCRE library into the system, or build the PCRE library 4 statically from the source with nginx by using - - with - pcre = <path> option. |
故障二:没有安装openssl和openssl-devel
1
2
3
4
|
. / configure: error: SSL modules require the OpenSSL library. 2 You can either do not enable the modules, or install the OpenSSL library 3 into the system, or build the OpenSSL library statically from the source 4 with nginx by using - - with - openssl = <path> option. |
如果是学习,需要关闭防火墙和selinux
启动
1
2
3
4
5
|
/ application / nginx / sbin / nginx –t # 检查 / application / nginx / sbin / nginx # 启动 / application / nginx / sbin / nginx - s reload # 默默的重启 |
目录结构
安装目录下,并非安装包的解压文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
[root@v - 1 nginx - 1.12 . 2 ] # tree . ├── client_body_temp ├── conf # 这是Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相关参数的配置文件 │ ├── fastcgi.conf.default │ ├── fastcgi_params # #fastcgi的参数文件 │ ├── fastcgi_params.default │ ├── koi - utf │ ├── koi - win │ ├── mime.types # 媒体类型 │ ├── mime.types.default │ ├── nginx.conf # nginx默认的主配置文件 │ ├── nginx.conf.default │ ├── scgi_params # scgi相关参数 │ ├── scgi_params.default │ ├── uwsgi_params # uwsgi相关参数 │ ├── uwsgi_params.default │ └── win - utf ├── fastcgi_temp # fastcgi临时数据目录 ├── html # 编译安装Nginx的默认站点目录 │ ├── 50x .html # 错误页面优雅替代显示文件 │ └── index.html # 默认的首页文件 ├── logs # 默认的日志路径包括错误日志和访问日志 │ ├── access.log │ ├── error.log │ └── nginx.pid ├── proxy_temp # 临时目录 ├── sbin # Nginx命令目录 │ └── nginx # 启动命令 ├── scgi_temp # 临时目录 └── uwsgi_temp |
配置文件
nginx.conf和nginx.conf.default默认是相同的,可以通过diff命令来比较两个文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# 通过命令将nginx配置文件精简化显示(去掉#注释和空行的内容): egrep - v "#|^$" nginx.conf.default >nginx.conf # egrep是grep的升级版,增加了正则|的使用 worker_processes 1 ; #worker进程的数量 events { #事件区块的开始 worker_connections 1024 ; #每个worker进程支持的最大连接数 } #事件区块的结束 http { #http区块的开始 include mime.types; #nginx支持的媒体类型库文件 default_type application / octet - stream; #默认的媒体类型 sendfile on; #开启高效传输模式 keepalive_timeout 65 ; #连接超时 server { #第一个server区块开始,表示一个独虚拟主机站点 listen 80 ; #服务端口,默认80 server_name localhost; #提供服务的域名主机名 location / { #第一个location区块开始 root html; #站点的根目录,相当于Nginx的安装目录 index index.html index.htm; #默认的首页文件,如果多个用空格分开 } #第一个location区块结束 error_page 500 502 503 504 / 50x .html; #出现对象http状态码时使用50x.html回应用户 location = / 50x .html { root html; } } } #http区块结束 |