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主要作用

  1. (Http服务器)处理静态文件
    image
    像这样配置的话当访问 localhost:80 时就会访问到相对当前路径下的 html文件夹下的index.html 或者index.htm
  2. 反向代理
    反向代理 也是nginx用的最多的地方,既然有反向代理那就肯定有 正向代理 先来理解下正向代理image
    正向代理其实就是代理上网,客户端发送请求到代理服务器然后代理服务器转交请求给目标服务器目标服务器响应给代理服务器代理服务器再响应给客户端也就起到了代理的作用
    那反向代理是什么呢?
    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