文章目录
  1. 1. 安装与配置
    1. 1.1. 介绍
    2. 1.2. 安装
    3. 1.3. 命令
    4. 1.4. 配置

安装与配置

介绍

Nginx是由俄罗斯软件工程师IgorSysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站已经开始使用Nginx作为Web应用服务器。

安装

1
2
3
4
5
6
$ wget http://nginx.org/download/nginx-1.6.3.tar.gz #下载nginx安装包
$ tar -xvf nginx-1.6.3.tar.gz #解压安装包
$ cd nginx-1.6.3/
$ ./configure --prefix=/usr/local/nginx
$ make
$ make install #安装

命令

1
2
3
4
5
6
7
$ sudo /usr/local/nginx/sbin/nginx -h   #查看帮助
$ sudo /usr/local/nginx/sbin/nginx #启动Nginx
$ sudo /usr/local/nginx/sbin/nginx -s stop #立即停止进程(TERM信号)
$ sudo /usr/local/nginx/sbin/nginx -s quit #温和停止进程(QUIT信号)
$ sudo /usr/local/nginx/sbin/nginx -s reload #重启
$ sudo /usr/local/nginx/sbin/nginx -t #检查配置文件是否正确(默认conf中)
$ sudo /sudo /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf #指定检查配置文件是否正确

配置

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#运行nginx的用户和用户组
user root root;
#nginx的进程数,建议设置与CPU的总核数相等
worker_processes 1;
#错误日志位置和级别(level: debug/info/notice/warn/error/crit)
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#nginx进程文件位置
#pid logs/nginx.pid;

#一个Nginx进程允许打开的最多文件描述符数,理论上是Linux系统允许打开的最大文件数(ulimit -n 查看)除以nginx进程数,
#但是nginx请求分配不均匀,所以配置一致就可以了
worker_rlimit_nofile 1024;

#工作模式与连接数上限
events {
#参考事件模型,use [kqueue|rtsig|epoll|/dev/poll|select|poll]; epoll模型是Linux 2.6以上版本内核中的
#高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
use epoll;
#单个进程的最大连接数
worker_connections 1024;
}

#配置Http服务器
http {
#文件扩展名与文件类型映射表
include mime.types;
#默认文件类型
default_type application/octet-stream;
#默认编码
charset utf-8;
#定义日志格式 名称为main(-----)
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#设置执行log的路径和日志格式
#access_log logs/access.log main;
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,
#如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。
#注意:如果图片显示不正常把这个改成off
sendfile on;
#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
#tcp_nopush on;
#告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,
#这样发送一小块数据信息时就不能立即得到返回值。
#tcp_nodelay on;
##长连接超时时间,单位是秒
#keepalive_timeout 0;
keepalive_timeout 65;
#该指令用于开启或关闭gzip模块(on/off)
gzip on;
#ie6不启动压缩
gzip_disable "msie6";
#设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是0,不管页面多大都压缩。
#建议设置成大于1k的字节数,小于1k可能会越压越大
gzip_min_length 1k;
#设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,
#安装原始数据大小以16k为单位的4倍申请内存
gzip_buffers 4 16k; #压缩缓冲区
#识别http的协议版本(1.0/1.1)
gzip_http_version 1.1;
#允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求
gzip_proxied any;
#gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu),,一般设置为4.
gzip_comp_level 4;
#匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的
gzip_types text/plain application/x-javascript text/css application/xml
#和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,
#所以根据客户端的HTTP头来判断,是否需要压缩
gzip_vary on;
#虚拟服务器配置
server {
#端口
listen 80;
#域名配置,可以多个用空格隔开
server_name localhost;
#编码格式
#charset utf-8;
#执行日志
#access_log logs/host.access.log main;
#location配置
location / {
root html;
index index.html index.htm;
}

#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自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
#过期30天,静态文件不怎么更新,过期可以设大一点,
#如果频繁更新,则可以设置得小一点。
expires 30d;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
# 启用反向代理
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
# 设置访问控制,deny all禁止访问
#location ~ /\.ht {
# deny all;
#}
}



# HTTPS server配置
#server {
# listen 443 ssl;
# 请注意如果你在单IP上配置多台https请一定要写上域名
# server_name localhost;
# 设置证书
# ssl_certificate cert.pem;
# 设置秘钥
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}

参考:
[1] http://wiki.nginx.org/Configuration
[2] http://www.ha97.com/5194.html
[3] http://www.cnblogs.com/zfying/archive/2012/07/07/2580876.html

文章目录
  1. 1. 安装与配置
    1. 1.1. 介绍
    2. 1.2. 安装
    3. 1.3. 命令
    4. 1.4. 配置