Nginx安装完毕后,会有响应的安装目录,安装目录里nginx.conf为nginx的主配置文件,ginx主配置文件分为4部分,main(全局配置)、server(主机设置)、upstream(负载均衡服务器设)和location(URL匹配特定位置的设置),这四者关系为:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。
一、Nginx的main(全局配置)文件
1
2
3
4
5
6
7
8
9
10
11
|
[root
@rhel6u3
-
7
server]# vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;
//指定nginx运行的用户及用户组为nginx,默认为nobody
worker_processes
2
;
//开启的进程数,一般跟逻辑cpu核数一致
error_log logs/error.log notice;
//定于全局错误日志文件,级别以notice显示。还有debug、info、warn、error、crit模式,debug输出最多,crit输出最少,更加实际环境而定。
pid logs/nginx.pid;
//指定进程id的存储文件位置
worker_rlimit_nofile
65535
;
//指定一个nginx进程打开的最多文件描述符数目,受系统进程的最大打开文件数量限制
events {
use epoll; 设置工作模式为epoll,除此之外还有select、poll、kqueue、rtsig和/dev/poll模式
worker_connections
65535
;
//定义每个进程的最大连接数 受系统进程的最大打开文件数量限制
}
…….
|
1
2
|
[root
@rhel6u3
-
7
server]# cat /proc/cpuinfo | grep
"processor"
| wc –l
//查看逻辑CPU核数
[root
@rhel6u3
-
7
server]# ulimit -n
65535
//设置系统进程的最大打开文件数量
|
二、Nginx的HTTP服务器配置,Gzip配置。
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
|
http {
*****************************以下是http服务器全局配置*********************************
include mime.types;
//主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度,DNS主配置文件中的zonerfc1912,acl基本上都是用的include语句
default_type application/octet-stream;
//核心模块指令,这里默认设置为二进制流,也就是当文件类型未定义时使用这种方式
//下面代码为日志格式的设定,main为日志格式的名称,可自行设置,后面引用。
log_format main
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
;
access_log logs/access.log main;
//引用日志main
client_max_body_size 20m;
//设置允许客户端请求的最大的单个文件字节数
client_header_buffer_size 32k;
//指定来自客户端请求头的headebuffer大小
client_body_temp_path /dev/shm/client_body_temp;
//指定连接请求试图写入缓存文件的目录路径
large_client_header_buffers
4
32k;
//指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB
sendfile on;
//开启高效文件传输模式
tcp_nopush on;
//开启防止网络阻塞
tcp_nodelay on;
//开启防止网络阻塞
keepalive_timeout
65
;
//设置客户端连接保存活动的超时时间
client_header_timeout
10
;
//用于设置客户端请求读取超时时间
client_body_timeout
10
;
//用于设置客户端请求主体读取超时时间
send_timeout
10
;
//用于设置相应客户端的超时时间
//以下是httpGzip模块配置
#httpGzip modules
gzip on;
//开启gzip压缩
gzip_min_length 1k;
//设置允许压缩的页面最小字节数
gzip_buffers
4
16k;
//申请4个单位为16K的内存作为压缩结果流缓存
gzip_http_version
1.1
;
//设置识别http协议的版本,默认是1.1
gzip_comp_level
2
;
//指定gzip压缩比,1-9 数字越小,压缩比越小,速度越快.
gzip_types text/plain application/x-javascript text/css application/xml;
//指定压缩的类型
gzip_vary on;
//让前端的缓存服务器存经过gzip压缩的页面
|
三、nginx的server虚拟主机配置
两种方式一种是直接在主配置文件中设置server字段配置虚拟主机,另外一种是使用include字段设置虚拟主机,这样可以减少主配置文件的复杂性。
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
|
*****************************以下是server主机设置*********************************
server {
listen
80
;
//监听端口为80
server_name www.rsyslog.org;
//设置主机域名
charset gb2312;
//设置访问的语言编码
access_log logs/www.rsyslog.org.access.log main;
//设置虚拟主机访问日志的存放路径及日志的格式为main
location / {
//设置虚拟主机的基本信息
root sites/www;
//设置虚拟主机的网站根目录
index index.html index.htm;
//设置虚拟主机默认访问的网页
}
location /status {
// 查看nginx当前的状态情况,需要模块 “--with-http_stub_status_module”支持
stub_status on;
access_log /usr/local/nginx/logs/status.log;
auth_basic
"NginxStatus"
; }
}
include /usr/local/nginx/server/www1.rsyslog.org;
//使用include字段设置server,内容如下
[root
@rhel6u3
-
7
~]# cat /usr/local/nginx/server/www1.rsyslog.org
server {
listen
80
;
server_name www1.rsyslog.org;
location / {
root sites/www1;
index index.html index.htm;
}
}
|
本文出自 “小诺的Linux开源技术博客” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1140995