给自己的网站加道门(一)Nginx(1)—入门篇

Nginx

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

反向代理

要理解反向代理,举个例子:你去找代购去买东西,你不用管代购从哪里买到东西,只需要他能够帮你买到东西就行了。将访问网站类比成这个过程,“你”相当于浏览器,代购相当于Nginx,东西就是从真正的服务器获取到的页面信息。

反向代理的作用
  • 保证应用服务器的安全(增加一层代理,可以屏蔽危险攻击,更方便的控制权限)
  • 实现负载均衡
  • 实现跨域
配置反向代理
server {  
        listen       8080;        
        server_name  localhost;

        location / {
            root   html; # Nginx默认值
            index  index.html index.htm;
        }

        proxy_pass http://localhost:8000; # 反向代理配置,请求会被转发到8000端口
}

以上配置的作用就是向Nginx请求localhost:8080与请求http://localhost:8000是一样的效果(端口转发?)

实际应用

如图,Nginx就是充当了图中的Proxy。

反向代理应用十分广泛,CDN服务就是反向代理的经典应用场景之一。除此之外,反向代理也是实现负载均衡的基础。

负载均衡

当网站业务不断增长,单台服务器已经不能满足访问需求的时候,就出现了服务器集群。

在服务器集群中,Nginx可以将接收到的客户端请求分配到这个集群中所有的服务器上,这就叫负载均衡

作用
  • 分担服务器集群的压力
  • 保证客户端访问的稳定性
  • 除此之外,Nginx还会定期向所有服务器发送健康检查请求,来检查集群中是否有服务器处于异常状态。
配置负载均衡
# 负载均衡:设置domain
upstream domain {
    server localhost:8000;
    server localhost:8001;
}
server {  
        listen       8080;        
        server_name  localhost;

        location / {
            # root   html; # Nginx默认值
            # index  index.html index.htm;

            proxy_pass http://domain; # 负载均衡配置,请求会被平均分配到8000和8001端口
            proxy_set_header Host $host:$server_port;
        }
}

反向代理

意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。当你需要把你的服务器作为代理服务器的时候,可以用Nginx来实现正向代理。

科学上网vpn(俗称翻墙)其实就是一个正向代理工具。

该 vpn 会将想访问墙外服务器 server 的网页请求,代理到一个可以访问该网站的代理服务器 proxy 上。这个 proxy 把墙外服务器 server 上获取的网页内容,再转发给客户。

代理服务器 proxy 就是 Nginx 搭建的。


这里就不细说了,作为Nginx入门篇第一篇笔记,主要就是了解一下Nginx是什么,在web里在哪个环节充当什么角色。

目前那个数据库还是采用的直接ip访问tomcat服务器方法,寒假找时间看看如何把Nginx加上做一个防火墙。

冲冲冲!

发表评论