一、Nginx简介
Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
- 高性能:高响应高并发
- IMAP/POP3/SMTP:邮件服务器
- 反向代理:隐藏真实的服务端,如百度https://www.baidu.com/有多个服务器,用户访问同一个域名,对背后服务器调度是没有感知的。
二、Nginx特点
- 反向代理
- 负载均衡
- 动静分离
反向代理:
负载均衡:
即是将负载分摊到不同的服务单元。
- 轮询 :将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
- 加权轮询 :不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载.
- ip_hash :根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。
动静分离:
把动态页面和静态页面有不同的服务器来解析,加快解析速度。
- 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案
- 另外一种就是动态跟静态文件混合在一起发布,通过nginx来分开
三、nginx.conf配置
# 全局配置
一般配置Nginx用户、用户组、引用文件、错误日志等
events {
# 事件配置
}
http {
# http配置
设定mime类型等
#导入文件
include vhosts/*.conf;
include new-vhosts/*.conf;
upstream XXX {
# 负载均衡配置
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:8081 weight=1;
}
server
#配置虚拟机
{
listen 80;#http默认80端口、https默认443端口
server_name XXX.cn.com; #访问域名,即客户访问的域名
location / {
#设置被代理服务器的端口或套接字,以及URL
#proxy_pass http://127.0.0.1:8080;
proxy_pass http://XXX;
}
}
}
四、Nginx常用命令
* nginx #启动nginx
* nginx -s stop #强制退出nginx
* nginx -s quit #安全退出nginx
* nginx -s reload #重新加载nginx配置