Nginx配置

1、实现反向代理

  实现案例(1):打开浏览器,在浏览器的地址栏中输入地址www.123.com,跳转到Linux系统Tomcat主页面

    

 第一部在windows系统中配置host文件

  host文件位置:C:\Windows\System32\drivers\etc 下的host

  修改host文件:最后追加: 自己的Linux系统ip  www.123.com

  配置完之后,在浏览器中输入 www.123.com:8080 就会看见tomcat的主页了

第二步:在Nginx中进行请求转发(即:实现反向代理)

  在Nginx的配置文件中:配置文件目录  cd /usr/local/nginx/conf/

  在文件nginx.conf中配置

        listen       80;
        server_name  47.96.152.80;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }
    

第三步,启动Nginx测试

启动命令:在nginx的 sbin目录下启动:./nginx

在浏览器中输入:www.123.com就能看见Tomcat了

  实现案例(2):通过访问不同的网址跳转到 不同的tomcat

    访问http:127.0.0.1:9001/edu/   直接跳转到127.0.0.1:8081

    访问http:127.0.0.1:9001/vod/   直接跳转到127.0.0.1:8082

  (1)创建两个tomcat:一个tomcat8081、一个tomcat8082,将其中的端口修改为8081、8082

  (2)修改nginx的配置文件nginx.conf,在其中再插入一个server

server {
        listen       9001;
        server_name  47.96.152.80;

        # ~   用于含正则表达式,区分大小写
        # ~* 用于含 正则表达式。不区分大小写
        # ~~   用于不含正则表达式
        # =  用于不含正则表达式前,完全匹配
        location ~ /edu/{
           proxy_pass http://47.96.152.80:8081;
        }

        location ~ /vod/{
           proxy_pass http://47.96.152.80:8082;
        }


     }

  (3)重启nginx

2、实现负载均衡

  (1)实现效果

      浏览器输入栏输入地址http://47.96.152.80/edu/a.html ,负载均衡的效果,平均到8081和8082端口

    (1.1)准备两台服务器:tomcat8081、tomcat8082

      (1.2)在每个tomcat下的webapps目录中,创建文件夹edu,并在edu文件夹中放入a.hmtl

    (1.3)修改nginx配置文件nginx.conf

    #实现负载均衡
    upstream myserver{
        server 47.96.152.80:8081;
        server 47.96.152.80:8082;
    }

    server {
        listen       80;
        server_name  47.96.152.80;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://myserver;
            root   html;
            #proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

 

    注意:服务器分配策略

    1、轮询(默认):每个请求时间顺序逐一分配到不同的后端服务器,如果服务器后端down掉,能自动剔除

    2、weight(按权重分配):代表权重默认为1,权重越高被分配的客户端越多

 upstream myserver{
     server 47.96.152.80:8081 weight = 1;
     server 47.96.152.80:8082 weight = 10;
 }

    3、ip_hash: 每个请求按照访问ip的hash结果访问,这样每个访问固定访问一个服务器,可以解决session的问题,

upstream myserver{
   ip_hash; server
47.96.152.80:8081; server 47.96.152.80:8082; }

    4、fair:按后端服务器响应时间来分配请求,响应时间短的优先分配

upstream myserver{
     server 47.96.152.80:8081;
     server 47.96.152.80:8082;
   fair; }

3、实现动静分离

  定义:简单说就是将动态和静态分开,不能单单的把它理解为将静态页面动态页面物理分开。严格意义上说动态请求与静态请求分开,可以理解为Nginx处理静态页面,Tomcat处理动态页面。

  处理方式1(主要使用方式):纯粹的把静态文件独立成单独的域名,放在独立的服务器上

  处理方式2:动态静态文件混合,通过nginx分离

  案例:

    (1)准备静态资源在Linux根目录下创建文件夹test,在test文件夹中返给www、image文件夹,image文件夹中放01.jpg,在www文件夹中放入a.html

    (2)具体配置nginx.conf

location /www/{
            root /test/;
            index  index.html index.htm;
        }

        location /image/ {
            root /test/;
            autoindex on;
        }

    (3) 测试:http://47.96.152.80/image/  http://47.96.152.80/www/a.html  

posted @ 2019-11-12 20:28  编程小白1024  阅读(424)  评论(0编辑  收藏  举报