nginx的使用

一、nginx的安装、启动、查看

# 安装nginx
yum install  nginx   -y

# 启动nginx
systemctl  start   nginx

# 查看nginx状态
systemctl  status  nginx

# 查看nginx服务端口状态
netstat   -antp

# 查看nginx进程状态
ps  -aux  | grep nginx

二、nginx的作用和配置文件

nginx主要功能有:web服务器、反向代理、负载均衡、动静分离、高可用集群(这里不做介绍)

所有实现都依赖于对nginx配置文件的配置

① 第一部分 全局块:从配置文件开始到 events 块之间的内容,设置影响 nginx 服务器整体运行的配置指令,包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数、进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。 

② 第二部分 events块:影响 Nginx 服务器与用户的网络连接,支持的最大连接数为 1024,需灵活配置

③ 第三部分 http块:nginx实现的主要功能都是在这里进行配置

# 第一部分
user nginx;
# 并发处理的配置,worker_processes 值越大,可以支持的并发处理量也越多,受到硬件、软件的制约
worker_processes 1;
include /usr/share/nginx/modules/*.conf;


# 第二部分
events {
    worker_connections 1024;
}

# 第三部分
http {
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        server_name  _;
        include /etc/nginx/default.d/*.conf;

        location / {
        }
    }
}

三、nginx反向代理

3.1 正向代理:最直观的例子是下图这种情况

3.2 反向代理:将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据返回给客户端

3.3 nginx反向代理配置

案例一

在/usr/local下安装tomcat并启动,在8080端口访问

配置反向代理,在/etc/nginx/conf.d/*.conf下添加一个自定义配置文件,重启nginx

server{
        listen   80;
        server_name   主机IP地址;

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

访问80端口如下

 

案例二

① 在/usr/local下安装两个tomcat并启动,监听端口为8080、8090

② 在两个tomcat的webapps目录下新建页面 

vim   /usr/local/tomcat7/webapps/serve1/test.html

<h1> serve1  port  8080</h1>

vim   /usr/local/tomcat7/webapps/serve2/test.html

<h1> serve1  port  8090</h1>

分别访问两个站点

③ 实现的效果和配置:配置nginx反向代理,不同访问路径转发到不同端口的tomcat

访问 http://IP:9001/serve1/  直接跳转到 http://IP:8080
访问 http://IP:9001/serve2/  直接跳转到 http://IP:8090

在/etc/nginx/conf.d/*.conf下添加一个自定义的配置文件 vim  /etc/nginx/conf.d/mynginx.conf

server {
        listen 9001;
        server_name localhost;

        location ~ /serve1/ {
                proxy_pass http://localhost:8080;
        }

        location ~ /serve2/ {
                proxy_pass http://localhost:8090;
        }
}

④ 重启nginx、通过nginx监听的9001端口访问测试

systemctl  restart nginx

netstat   -anpt  | grep java

netstat   -anpt  | grep nginx

四、nginx实现负载均衡

4.1 准备两个tomcat,监听端口为8080、8090

4.2 配置负载均衡,添加自定义而配置文件

    upstream   mytest{
        server   IP:8080;
        server   IP:8090;
    }

    server {
        listen       9001;
        server_name  IP;

        location / {
            proxy_pass http://mytest;
        }
    }

4.3 访问同一个地址,nginx将访问平均分配给两台tomcat响应

 

4.4 nginx分配策略,4种分配策略

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

② weight:默认为 1,权重越高被分配的客户端越多。例如下边配合,访问8080一次,访问8090三次

upstream   mytest{
        server   IP:8080   weight=1;
        server   IP:8090   weight=3;
    }

③ ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题,示例如下

upstream   mytest{
        ip_hash;
        server   IP:8080;
        server   IP:8090;
    }

④ fair(我测试失败了):按后端服务器的响应时间来分配请求,响应时间短的优先分配,示例如下

upstream   mytest{
        #ip_hash;
        server   IP:8080;
        server   IP:8090;
        fair;
    }

五、nginx实现动静分离(前后端分离转发)

5.1 在根目录下新建static文件夹,放静态图片

5.2 在tomcat的webapps目录下新建测试页,在8080端口启动tomcat

5.3 在nginx配置文件夹下新建配置文件mynginx.conf,内容如下server块

vim   /etc/nginx/conf.d/mynginx.conf

server {
        listen  9001;
        # 当接收到http请求时,首先host和这里的server_name进行匹配,如果匹配上,则走这个虚拟主机的location路由
        server_name   IP;

        #  静态资源转发
        location   ~*\.(gif|jpg|jpeg|bmp|png|ico)$ {
                # 所有括号中包括的静态文件直接读取根目录下static文件夹
                root  /static/;
                # 缓存30天
                expires  30d;
        }

        #  其他的url则转发到 http://IP:8080
        location / {
                proxy_pass http://IP:8080;
        }
}

5.4 测试

访问后端tomcat中的页面(或者后端动态资源)

访问静态资源(前端静态资源)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值