1 Nginx
1.1 介绍
一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它占有的内存少,并发能力强,中国大陆使用 nginx 的网站有:百度、京东、新浪、网易、腾讯、淘宝等。第一个公开版本发布于 2004.10.04
官网:https://nginx.org/
1.2 配置文件结构
2 应用一:部署静态资源
Nginx 可作为静态 web 服务器来部署静态资源。相比于 Tomcat,Nginx 处理静态资源的能力更加高效,所以在生产环境下,一般会将静态资源部署到 Nginx 中。步骤简单,只需将文件复制到 Nginx 安装目录下的 html 目录中即可。
【静态资源】:在服务端真实存在并且能够直接展示的一些文件,比如常见的 html 页面、css 文件、js 文件、 图片、视频等资源。
server {
listen 8088; #监听端口
server_name localhost; #服务器名称
location / { #匹配客户端请求url
root html; #指定静态资源根目录
index index.html index.htm; #指定默认首页
}
}
3 应用二:反向代理
3.1 正向代理
正向代理是一个位于客户端和原始服务器之间的服务器。为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。
【典型用途】:为在防火墙内的局域网客户端提供访问 Internet 的途径
3.2 反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
server {
listen 8088;
server_name localhost;
location / {
#反向代理配置,将8088端口请求转发到指定服务器192.168.138.101:8080
proxy_pass http://192.168.138.101:8080;
}
}
4 应用三:负载均衡
随着互联网的发展,业务流量增大且业务逻辑越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。
【应用集群】:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
【负载均衡器】:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
upstream webservers{ #upstream 指令可以定义一组服务器
server 127.0.0.1:8080 weight=90 ;
server 127.0.0.1:8088 weight=10 ;
}
server {
listen 8088;
server_name localhost;
location / {
proxy_pass http://webservers/admin/;
}
}
负载均衡策略: