1.正向代理
(1)架设在客户端和服务端之间,只用于代理内部网络对Internet的连接请求
(2)客户端必须指定代理服务器
2.反向代理
(1)架设在服务器端,通过缓存经常被加载的页面来缓解服务器端的工作量
(2)将客户端请求转发给内部网络上的目标服务器
(3)此时代理服务器和目标服务器一起对外表现为一个服务器
3.反向代理的作用
(1)防止外网对内网服务器的恶意攻击
(2)缓存以减少服务器端的压力
(3)访问安全控制
(4)进行负载均衡,将用户请求分配给多个服务器
4.反向代理服务器Nginx
1) 使用两个tomcat实例模拟两台http服务器
172.20.10.60 12080 |
172.20.10.60 13080 |
2) 在windows系统配置IP地址对应的域名 -修改C:\Windows\System32\drivers\etc目录下的hosts文件
172.20.10.60 | 12080.com |
172.20.10.60 | 13080.com |
172.20.10.60 | base-linux.com |
3)配置nginx.conf
Nginx反向代理接受客户端请求
(1)找到server_name为[域名]的server节点
(2)根据server节点的proxy_pass对应的http路径,将
请求转发到upstream 配置的目标服务器上
#运行用户 默认是nginx,可以不设置
#user nobody;
#进程数 一般设置成CPU内核数,最好不要大于CPU内核数
worker_processes 1;
#错误日志存放目录
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#进程pid存放目录
#pid logs/nginx.pid;
#工作模式,以及最大连接数
events {
#单个线程后台worker process进程的最大并发连接数
worker_connections 1024;
}
http {
include mime.types;#文件扩展名与类型的映射表
default_type application/octet-stream;#默认文件类型
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#开启高效传输模式
sendfile on;
#激活tcp_nopush参数可以允许把httpresponse header和文件的开始放在一个文件里发布,
#积极的作用是减少网络报文段的数量
#tcp_nopush on;
#连接超时时间,单位是秒
keepalive_timeout 65;
#开启gzip压缩功能
#gzip on;
#upstream表示负载服务器池
upstream tomcat08-01{
server 172.20.10.60:12080;
}
upstream tomcat08-02{
server 172.20.10.60:13080;
}
server {
listen 80;
server_name 12080.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat08-01;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name 13080.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat08-02;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
注:如果想实现负载均衡,改变一下配置文件nginx.conf,默认是轮询策略
#user nobody;
#进程数 一般设置成CPU内核数,最好不要大于CPU内核数
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcat08-01{
server 172.20.10.60:12080;
server 172.20.10.60:13080;
}
server {
listen 80;
server_name base-linux.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat08-01;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
5.启动nginx,tomcat-01,tomcat-02
6.使用下面的访问地址校验(使用谷歌浏览器)
12080.com:12080 访问tomcat-01服务器
13080.com:13080 访问tomcat-02服务器