Nginx 学习
目录
Nginx 学习笔记
-
Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP服务器。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер) 开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。 其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011 年 6 月 1 日,nginx 1.0.4 发布。 Nginx 是一款 轻量级 的 Web 服务器/反向代理 服务器及 电子邮件(IMAP/POP3) 代理服务器,并在一个 BSD-like 协议下发行。其特点是占有内存少,并发 能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
-
Nginx 主要作用
- (Http 服务器)处理静态文件
像这样配置的话当访问 localhost:80 时就会访问到相对当前路径下的 html 文件夹下的 index.html 或者 index.htm
- 反向代理
反向代理 也是 nginx 用的最多的地方,既然有反向代理那就肯定有 正向代理 先来理解下正向代理!image
正向代理其实就是代理上网,客户端发送请求到代理服务器然后代理服务器转交请求给目标服务器目标服务器响应给代理服务器代理服务器再响应给客户端也就起到了代理的作用
那反向代理是什么呢?
正向代理针对的是客户端而反向代理正对的是服务端 当用户发送一个请求给 ServerB 然后 ServerB 判断用户是什么请求 是请求 Server1 就转发给 Server1… 在生产中前端用一个 Nginx 处理用户的请求再分发到不同的后端服务器。 配置
upstream sina{
server 192.168.125.3:8080;
}
server {
listen 80;
server_name www.sina.com.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://sina;
index index.html index.htm;
}
}
upstream sohu{
server 192.168.125.3:8081;
}
server {
listen 80;
server_name www.sohu.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#交给谁代理
proxy_pass http://sohu;
index index.html index.htm;
}
}
像这样配置客户端访问通过一个公网 ip 入口先到达 Nginx 然后转发给对应的服务器当用户访问* www.sohu.com *时就会转发给 http://sohu 这个就是上面的 upstream sohu{…} 交给它处理 3. 负载均衡和容错 负载均衡就是在反向代理的中间加上的 就是在 upstream 里面加一个 server,最简单的负载均衡就是轮询一人一次刷新就换 (默认的就是轮询) 当然你也可以根据服务器性能配置权重权重越大访问到的机会越大
upstream sina{
server 192.168.125.3:8080;
#weigth 是权重
server 192.168.25.148:8082 weight=2;
}
server {
listen 80;
server_name www.sina.com.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://sina;
index index.html index.htm;
}
}
由于 Nginx 是我们网站的入口如果 Nginx 挂掉后面的服务就都失效了这时候就可以加备用 Nginx 服务器用 keepalive+Nginx 实现主备!image