概述
代理
正向代理
- 代理的目标为客户端,客户端请求代理主机,代理主机主动请求目标服务器,目标服务器会认为是代理主机在向它发送请求,将资源响应给代理主机,代理主机收到服务器的响应资源后,将资源转发给客户端;
- 目的:对服务器隐藏客户端信息;
反向代理
-
代理目标为服务器,客户端请求代理主机,由代理主机根据负载策略决定将该请求发送给哪台服务器处理,服务器处理请求后,将响应资源发送给代理主机,代理主机收到响应资源后,将资源转发给客户端。
-
目的:可以对客户端隐藏具体服务器信息,可以实现服务器负载均衡效果。
-
常见负载策略:
- 最少连接策略:将请求发送给目前连接最少的服务器处理;
- IP哈希策略:根据客户端的IP地址将请求发送给服务器处理,同一个客户端的请求会发送给同一台服务器处理;
- 加权轮询策略:根据服务器权重决定将请求发送给哪台服务器处理;
Nginx反向代理实现
准备安装包
- 将Nginx解压到指定盘符
配置Nginx实现反向代理
- 配置
conf/nginx.conf
http{
upstream tomcatlist{
server 服务器A的IP:端口;
server 服务器B的IP:端口;
}
server {
location / {
proxy_pass http://tomcatlist/项目名称/;
}
location /项目名称/{
proxy_pass http://tomcatlist/项目名称/;
}
}
}
客户端输入URL请求代理主机
http://代理主机IP/
HTTPS配置
下载OpenSSL
- Linux系统:www.openssl.org/source/
- Windows系统:slproweb.com/products/Wi…
安装OpenSSL
- 一路next,无特别选择
利用OpenSSL生成密钥和证书
- 生成密钥
openssl genrsa -out "存储密钥数据的文件路径"
- 根据密钥文件生成请求证书的csr文件
openssl req -new -key "存储密钥数据的文件路径" -out "存储csr数据的文件路径"
- 根据密钥文件和csr生成证书文件
openssl x509 -req -days 证书过期时间 -in "存储csr数据的文件路径" -signkey "存储密钥数据的文件路径" -out "存储证书数据的文件路径"
- 查看生成文件
配置Nginx
- 配置
conf/nginx.conf文件,添加以下代码;
http{
server {
listen 443 ssl;
server_name localhost;
ssl_certificate 存储证书数据的文件路径;
ssl_certificate_key 存储密钥数据的文件路径;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcatlist/项目名称/;
}
location /项目名称/{
proxy_pass http://tomcatlist/项目名称/;
}
}
}
HTTP跳转HTTPS
- 配置
conf/nginx.conf文件;
http{
server{
listen 80;
rewrite ^(.*)$ https://$host$1 permanent;
}
}