Nginx

Nginx

别人的笔记:https://www.cnblogs.com/knowledgesea/category/789005.html

一句话总结正向代理反向代理:

  正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;(VPN)

  而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。

假的目录 

1、

  (1)是什么,能做什么

  (2)反向代理

  (3)负载均衡

  (4)动静分离

2、安装 命令 配置文件

3、  配置案例1.反向代理

  配置案例2.负载均衡

  配置案例3.动静分离

  高集群

 别人的安装笔记:https://www.cnblogs.com/jimisun/p/8057156.html

我的安装笔记 : https://www.cnblogs.com/Lemonades/p/11578457.html

 配置文件

   分为三部分:

    全局快:影响Nginx整体运行的配置,

     events块:影响nginx与用户的网络连接,

    http块: 配置反向代理,负载均衡,动静分离;

        http全局块:文件引入,MIME-TYPE定义,日志定义,连接超时时间,单链接时间上限;

        server块

            全局server:

            location块:

 配置案例1.反向代理 --将nginx代理到tomcat

 修改:

  server_name www.anitano.cn;

  在location添加 proxy_pass http://localhost:8080;

 重启,验证 ./nginx -s reload

配置案例2.反向代理 --将nginx代理到不同tomcat1 tomcat2

输入:http://www.anitano.cn:8888/nav/index1.html   访问 (我使用了域名,没有域名使用 IP地址)

nginx监听8888端口,当 ~ 正则表达式匹配到  /nav/ 时,将请求 转发到  http://localhost:8080 ,端口号为8080的服务器。 注意:项目名要和 正则表达式一致为 nav

server{
         listen       8888;
         server_name       anitano.cn;
         location ~ /nav/{
                proxy_pass  http://localhost:8080;
         }
         location ~ /nav2/{
                proxy_pass  http://localhost:8081;
         }
}

  

正则表达式:

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。 
2、~:用于表示 uri 包含正则表达式,并且区分大小写。 
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。 
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 
 
 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。 

  

 配置案例3.负载均衡 --使用两台服务器,根据算法,对请求进行分配

 在http块添加

    upstream myserver{
        server localhost:8080;
        server localhost:8081;
    }

 在localtion添加(修改)proxy_pass

proxy_pass  http://myserver;

注:几个分配策略 

1、轮询(默认):根据时间,将请求分配到不同的服务器

2、热备:backup 当服务器 8081 停机后,就会使用 8080 的服务器

    upstream myserver{
        server localhost:8080 backup;
        server localhost:8081;
    }

3、加权轮询:给服务器加权重,8081被访问的次数较多  ABBABBABB

    upstream myserver{
        server localhost:8080 weight=1;
        server localhost:8081 weight=2;
    }

  

4、ip_hash :根据IP的地址,访问相对应的服务器,可以解决 session的问题

    upstream myserver{
        ip_hash;
        server localhost:8080;
        server localhost:8081;
    }

5、fail 第三方,根据响应时间来分配,写法类似ip_hash  

  

 配置案例4.动静分离 ---- 请求地址 www 或 image ,然后会到 root 的 /data/ 找到对应的 路径(请求地址不包含 data)

 访问html:http://anitano.cn/www/index1.html    

访问图片:http://anitano.cn/image/cell.png

        location /www/ {
            root   /data/;
            index  index.html index.htm;
        }
        location /image/ {
            root   /data/;#添加 autoindex on; 可以有一个索引目录
        }

  

 注: 常用操作 

编辑配置文件: vim /usr/local/nginx/conf/nginx.conf

重新加载配置文件:./nginx -s reload

到主命令文件:cd /usr/local/nginx/sbin/

原文地址:https://www.cnblogs.com/Lemonades/p/11749731.html