给自己的网站加道门(一)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加上做一个防火墙。
冲冲冲!