一、 关于Nginx
1.1、一款高性能、轻量级Web服务软件
1.1.1、稳定性高
1.1.2、系统资源消耗低
1.1.3、对HTTP并发连接的处理能力高
1.1.4、单台物理服务器可支持30000~50000个并发请求
Top
二、Nginx模块单元介绍
2.1、ngx_http_access_module模块:实现基于ip的访问控制功能
2.2、ngx_http_auth_basic_module模块:实现基于用户的访问控制,使用basic机制进行用户认证
2.3、ngx_http_stub_status_module模块:用于输出nginx的基本状态信息
2.4、ngx_http_log_module模块:用指定的格式写入请求日志
2.5、ngx_http_gzip_module模块:用gzip算法来压缩数据可以节约带宽,默认nginx不压缩数据,但是压缩会消耗CPU资源,且压缩文本图像类效果较好,能达到30%左右,但压缩音频视频没有多大意义,因为本身音视频就是被压缩过的,很可能对音视频压缩反而会增大其体积
2.6、ngx_http_ssl_module模块:启用https时使用的模块
2.7、ngx_http_rewrite_module模块:重定向模块,可以将客户端的请求基于regex所描述的模式进行检查,而后完成替换。当旧的业务和新的业务不一样,网站更名了,就可以使用此模块。将访问旧的请求重定向成新的
2.8、ngx_http_referer_module模块:可以跟踪链接从哪里跳转过来的,该字段可以用来防止盗链
2.9、ngx_http_headers_module模块:向由代理服务器响应给客户端的响应报文添加自定义首部,或修改指定首部的值
Top
三、不同版本的Nginx区别
2.1、Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
2.2、Stable version:最新稳定版,生产环境上建议使用的版本
2.3、Legacy versions:遗留的老版本的稳定版
Top
四、主配置文件修改
4.1、全局配置
1 #user nobody; ##指定用户,默认是匿名用户
2 worker_processes 1; ##工作进程,实现高并发可以增加值
3 #error_log logs/error.log; ##错误日志文件
4 #pid logs/nginx.pid; ##pid文件
4.2、进程数配置
1 events { ##一个进程包含多个线程
2 use epoll; #能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率
3 worker_connections 4096;
4 }
5 连接数4096基于线程数
4.3、http配置
1 http{}:协议层面;server{}:服务层面;location{}:网页站点目录层面
2 http {
3 access_log logs/access.log main;
4 sendfile on; ##发送邮件
5 keepalive timeout 65; ##连接超时时间
6 server {
7 listen 80;
8 server_name localhost; ##域名
9 charset utf-8; ##字符集
10 location / {
11 root html; ##网页站点目录名称
12 index index.html index.php; } ##主页的相对路径
13 error_page 500 502 503 504 /50x.html; ##提示错误页面(500是服务器出错)
14 location = /50x.html {
15 root