nginx安装

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依赖软件: 
1. GCC编译器
#GCC编译器和G++,用于编写Nginx HTTP模块
yum install gcc
yum install gcc-gcc+
2. PCRE库
#函数库,支持正则表达式,如果在nginx.conf里面使用了正则表达式,那么编译Nginx时就必须引进PCRE库,用于解析HTTP模块的正则表达式,
yum install pcre pcre-devel
3. zlib库
#用于对http包的内容做gzip格式的压缩。
yum install zlib zlib-devel
4. openssl开发库
#使用SSL协议上安全传输HTTP,就是所谓的https
yum install openssl openssl-devel

1. 源码安装
1.1 下载源码包并解压
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
1.2 编译
进入解压后的目录
./comfigure
make
make install
nginx默认安装到/usr/local/nginx/sbin/nginx目录

nginx配置文件详解

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# 当生成一些文件的时候,所属的用户和组
user www-data;

# 启动子进程(worker)数,可以通过`ps aux | grep nginx`

#查看,一般设置成CPU核数。
worker_processer 1;

# 全局错误日志,这里的“当前目录”为/usr/local/nginx
error_log logs/error.log; # 默认

# 保存PID的log
pid logs/nginx.pid; # 默认

# 工作模式和连接数上限
events{
# epoll是多路复用IO中的一种方式,仅用于linux2.6以上的内核,可以大大提高nginx的性能
use epoll;
# 单个worker process进程的最大并发连接数,受系统文件句柄限制,即`ulimit -a`中open files项
worker_connections 65535;
}

# 设定http服务器
http{
# 设定mime类型,mime.types为“文件类型定义”文件,“当前目录”为conf/
include mime.types;

# 默认文件类型
default_type application/octet-stream;

# 默认编码
# charset utf-8;

# 反向代理配置,可以打开proxy.conf看看
# include proxy.conf;

# fastcgi配置,可以打开fastcgi.conf看看
# include fastcgi.conf;

# 定义log文件怎么写
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 全局访问日志,使用以上定义的main格式
access_log logs/access.log main;

# sendfile指令指定nginx是否调用sendfile函数[零拷贝方式](http://baike.baidu.com/view/704944.htm)来输出文件。这是一个提高通信效率但是降低数据传输速率的函数,只有在用来进行下载等应用磁盘IO重负载的应用中设置为off
sendfile on;

# 服务器的响应头部信息产生独立的数据包发送,即一个响应头信息=>一个包
tcp_nopush on;

# 保持连接的超时时间
keepalive_timeout 65;

# 页面压缩后传输更节省流量
gzip on;

# 防止网络阻塞
tcp_nodelay on;

# 服务器名字的hash表大小
# server_names_hash_bucket_size 128;

# 上传文件大小限制
# client_header_buffer_size 32k;

# 设定请求缓存
# large_client_header_buffers 4 64k;
# client_max_body_size 8m;

# 开启限制IP连接数的时候需要使用
# limit_zone crawler $binary_remote_addr 10m;

# 包含每个server的配置
# include /usr/local/nginx/myconf/*.conf;

# server可以include进来,也可以直接写在后面,用于定义虚拟主机。最重要的是字段是server_name和root
server{
# 服务器监听端口
listen 7890;

# 访问域名
server_name www.example.com
#编码格式,如果网页编码与此设置不同,则将被自动转码,覆盖全局的编码。。
# charset koi8-r;

# 设置虚拟主机的访问日志
# access_log logs/www.example.com.access.log main;

#对URL进行匹配,访问server_name的时候进入这里
location / {
# 网页根目录,“当前目录”在nginx的安装目录,即/usr/local/nginx,可以用绝对路径或相对路径,以下的html是相对安装目录
root html;

# 默认的首页文件(有先后顺序),访问www.example.com则寻找root下的index.html返回,如果找不到,就找index.htm
index index.html index.htm;
}

# 设置错误代码对应的错误页面
# error_page 404 /404.html
# error_page 500 502 503 504 /50x.html

# 略去配置代理和HTTPS Server
}
}