Nginx笔记

使用centos7 + jdk1.8 + nginx1.12.2 + tomcat7.0.108

常用命令

  • 使用nginx命令的前提要进入到有效目录内 /usr/local/nginx/sbin
  • 查看版本 ./nginx -v
  • 关闭服务 ./nginx -s stop
  • 开启服务 ./nginx
  • 重新加载 ./nginx -s reload

配置文件

  • 配置文件的存放位置 /usr/local/nginx/conf/nginx.conf

  • 全局块
    从配置文件开始,到events块之间的内容,主要会设置一些影响nginx服务整体运行的参数配置,主要包括配置运行nginx服务的用户(组)、允许生成的work process数、进程PID存放路径、日志存放路径和类型、配置文件引入等

  • events块
    主要影响nginx服务与用户的网络连接,常用的设置包括是否开启对多work process下的网络连接进行序列化、是否允许同时接收多个网络连接、选取哪种事件驱动模型处理连接请求、每个work process支持的最大连接数等

  • http块
    1、这是配置最频繁的部分
    2、其中包含http全局块和server块

反向代理

nginx服务器代理访问tomcat
# http块中修改server块配置
server {
        listen       80;
# 将server_name localhost改为ip地址
        server_name  192.168.1.100; 
# 在location / 中增加proxy_pass参数
        location / {
            root   html;
            proxy_pass  http://127.0.0.1:8080;
            index  index.html index.htm;
        }
通过路径访问不同端口
  • 配置两个tomcat服务,默认端口分别为8080,8081
  • 在tomcat/webapps/分别新建 testa、testb目录,并存放index.html文件
  • 配置nginx
# 在http块中新增server块
server {
        listen    9000;
        server_name    192.168.1.100;
# 正则匹配访问路径
        location ~ /testa/ {
            proxy_pass    http://127.0.0.1:8080;
        }
        location ~ /testb/ {
            proxy_pass    http://127.0.0.1:8081;
        }
     }
  • 浏览器分别访问192.168.1.100:9000/testa/index.html 和 .../testb/index.html

负载均衡

  • linux启动两个tomcat服务,分别默认端口为8080,8081
  • tomcat中webapps目录下创建 edu/index.html文件
  • 配置nginx
# http块中增加名称为myserver的upstream,并设置两台服务器
    upstream myserver {
        server  192.168.1.100:8080;
        server  192.168.1.100:8081;
    }

    server {
        listen       80;
        server_name  192.168.1.100;

# 配置代理转发,填写新增的upstream名称
        location / {
            proxy_pass  http://myserver;
            root   html;
            index  index.html index.htm;
        }
  • 浏览器测试访问 http://192.168.1.100/edu/index.html
负载均衡模式
  • 轮询
    upstream myserver {
        server  192.168.1.100:8080;
        server  192.168.1.101:8080;
    }
  • 权重
    默认权重为1,权重越高被分配的请求数越多
    upstream myserver {
        server  192.168.1.100:8080 weight=2;
        server  192.168.1.101:8080 weight=5;
    }
  • ip_hash
    按照发出请求的客户端ip地址分配,当客户端ip地址固定时,将会一直分配到同一个服务器
    upstream myserver {
        ip_hash;
        server  192.168.1.100:8080;
        server  192.168.1.101:8080;
    }
  • fair
    可以根据请求数据大小,响应时间长短来智能分配服务器,使用此方式需要安装nginx-upstream-fair模块并配置后使用
    nginx-upstream-fair 官方下载地址:https://github.com/gnosek/nginx-upstream-fair
    upstream myserver {
        server  192.168.1.100:8080;
        server  192.168.1.101:8080;
        fair;
    }

-url_hash
根据URI地址的hash值分配,固定的URI将分配给固定的SERVER

    upstream myserver {
        server  192.168.1.100:8080;
        server  192.168.1.101:8080;
        hash $request_uri;
        hash_method crc32;
    }
down、backup
    upstream myserver {
# down 该server不参与负载
        server  192.168.1.100:8080 down;
        server  192.168.1.101:8080;
        server  192.168.1.102:8080;
# backup 备用server,当参与负载的server忙碌或down机时,请求备用server
        server  192.168.1.103:8080 backup;
        fair;
    }

动静分离

  • 根目录下新建mobile目录,同时创建mobile/www和mobile/static/images目录
  • www目录存放静态html文件,images目录存放图片文件
  • 配置nginx静态资源访问规则
        location /www/ {
            root    /mobile/;
            index  index.html index.htm;
        }
        location /images/ {
            root    /mobile/static/;
        }
  • 浏览器访问
    服务器IP/www/index.html
    服务器IP/images/flower.jpg

你可能感兴趣的:(Nginx笔记)