1.Nginx的功能模块说明
Nginx之所以强大,是因为有众多的模块,下面列出我们常用的模块
(1) Nginx 核心功能模块负责 Nginx 的全局应用,主要对应主配置文件的 Main 区块和 Events 区块,这里有很多Nginx必须的全局参数配置。
(2) Nginx 核心功能模块官网:http://nginx.org/en/docs/ngx_core_module.html
2.Nginx标准的http功能模块集合
下边这些都是标准http功能模块,虽不是Nginx必须的,但是都是很常见,因此,默认情况下都会自动安装的Nginx的软件中心,不建议擅自改动,除非你知道你在干什么。
生产环境中的配置,调整,优化Nginx都是在这些模块中修改相应的参数来实现。
ngx_http_core_module 包括一些核心的 http 参数配置,对应 Nginx 的配置为 HTTP 区块部分
ngx_http_access_module 访问控制模块,用来控制网站用户对 Nginx 的访问
ngx_http_gzip_module 压缩模块,对 Nginx 返回的数据压缩,属于性能优化模块
ngx_http_fastcgi_module FastCGI 模块,和动态应用相关的模块,如 PHP
ngx_http_proxy_module proxy 代理模块
ngx_http_upstream_module 负载均衡模块,可实现网站的负载均衡和节点的健康检查
ngx_http_rewrite_module URL 地址重写模块
ngx_http_limit_conn_module 限制用户并发连接数以及请求数的模块
ngx_http_limit_req_module 根据定义的 key 限制 Nginx 请求过程的速率
ngx_http_log_module 访问日志模块,以指定的格式记录 Nginx 客户访问日志等信息
ngx_http_auth_basic_module Web 认证模块,设置 Web 用户通过账号密码访问 Nginx
ngx_http_ssl_module ssl 模块,用于加密的 http 连接,如 https
ngx_http_stub_status_module 记录 Nginx 基本访问状态信息等的模块
3..Nginx的目录机构说明
这个是Nginx安装后整体的目录结构,如果我们使用别的途径安装的,这里边会有些许的不一样。
[root@localhost ~]# /www/server/nginx/conf
下边是使用tree conf
├── conf # Nginx所有配置文件的目录
│ ├── fastcgi.conf # fastcgi相关参数的配置文件
│ ├── fastcgi.conf.default # fastcgi.conf的原始备份文件
│ ├── fastcgi_params # fastcgi的参数文件
│ ├── fastcgi_params.default # 所有结尾为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 # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│ └── index.html # 默认的首页文件
├── logs # Nginx日志目录
│ ├── access.log # 访问日志文件
│ ├── error.log # 错误日志文件
│ └── nginx.pid # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp # 临时目录
├── sbin # Nginx命令目录
│ └── nginx # Nginx的启动命令
├── scgi_temp # 临时目录
└── uwsgi_temp # 临时目录
注释:MIME:互联网有很多不同的类型,Web服务器会通过web传输的每个对象都打上MIME类型。
当web服务器相应http响应报文请求时,回味每一个HTTP对象数据加一个MIME类型。
当web浏览器获取到服务器返回的对象时,回去查看相关的MIME类型,并进行相应处理。
3.Nginx的主配置文件说明
Nginx的主配置文件nginx.conf是一个纯文本的文件,位于Nginx安装目录下的conf中,配置文件是以区块的形式组织的。每个区块以{}表示,区块有多个层次,整个配置文件中,main位置最上层,main下边有events区,http区等层级,在http层级中有包含一个或者多个server区,每个server区中有可能有多个或者一个location去。
主体框架:
======================================================
#Main区块,Nginx核心功能模块
user nobody # 定义nginx运行的用户和用户组
worker_processes 1; #Nginx进程数,建议设置为等于CPU总核心数或者2倍的CPU
error_log logs/error.log;
注释:日志级别分为debug,info,notice,warn,error,crit。
debug显示信息最多,常用的error。常见502的频繁出现,可以把日志调成error。
pid logs/nginx.pid; #进程ID,这个在打开Nginx的时候,会默认生成。
worker_rlimit_nofile 204800;
=======================================================
# events区块,Nginx核心功能模块
events
{
use epoll;
worker_connections 65535;
keepalive_timeout 60;
client_header_buffer_size 4k;
open_file_cache max=65535 inactive=60s;
open_file_cache_valid 80s;
open_file_cache_min_uses 1;
open_file_cache_errors on;
}
这些是常见的一些配置,默认一般不需要修改,在调优的时候可以修改
=======================================================
#HTTP区块,Nginx http核心模块
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
autoindex on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server_tokens off;
access_log off;
server
{
listen 888;
server_name www.ceshi.cn;
index index.html index.htm index.php;
root /www/server/phpmyadmin;
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*.(js|css)?$
{
expires 12h;
}
location ~ /.
{
deny all;
}
access_log /www/wwwlogs/access.log;
}
include /www/server/panel/vhost/nginx/*.conf;
}
此处只是列出个常见的配置情况,在一般企业中,还会有多主机配置,以及负载均衡配置。我会在接下来工作中写出