Nginx-反向代理

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

   启动Nginx参考

   启动tomcat参考

6.使用下面的访问地址校验(使用谷歌浏览器)

        12080.com:12080 访问tomcat-01服务器

        13080.com:13080 访问tomcat-02服务器

猜你喜欢

转载自blog.csdn.net/lihongtai/article/details/83793323