Linux基础学习六:Nginx的使用教程

Nginx (发音:engine x) 是一个高性能的HTTP反向代理web服务器。它有2个常见的应用场景:

  • 反向代理Tomcat集群并实现负载均衡

  • 充当静态资源(html、js、css、图片)服务器

 Nginx的安装

  1. 下载并安装nginx的yum源

    [root@localhost bin]# wget -P /tmp http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    ​
    [root@localhost bin]# cd /tmp
    [root@localhost tmp]# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. 使用yum安装nginx

    [root@localhost tmp]# yum install -y nginx
  3. 启动nginx

    [root@localhost tmp]# systemctl start nginx
    [root@localhost tmp]# systemctl status nginx
    ● nginx.service - nginx - high performance web server
       Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
       Active: active (running) since 五 2020-05-29 02:23:00 CST; 6s ago
         Docs: http://nginx.org/en/docs/
      Process: 40706 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
     Main PID: 40707 (nginx)
       CGroup: /system.slice/nginx.service
               ├─40707 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
               └─40708 nginx: worker process

  4. 关闭防火墙和selinux

    [root@localhost tmp]# systemctl stop firewalld
    关闭防火墙开机自启动 systemctl disable firewalld
    ​
    [root@localhost tmp]# getenforce
    [root@localhost tmp]# setenforce 0 
    ​
    永久关闭selinux:编辑 vi /etc/selinux/config
    SELINUX=disabled
  5. 访问

    http://ip:80

    nginx默认占用80端口

注意:如果nginx访问出错,可以查看 /var/log/nginx/error.log 文件获取错误日志

 反向代理

代理其实就是一个中介,A和B本来可以直连,中间插入一个C,A借助C和B连接,C就是代理。刚开始的时候,代理多数是帮助client访问server端,也就是正向代理。后来又有了帮助server端响应client请求的反向代理。

  1. 正向代理

    正向代理用在client无法直接访问server端时。可以为client配置一个能访问server的代理,当client发送对server的请求时,实际上由代理发起对server的请求。

    特点:

  • 代理的是client

  • 虽不直接建立连接,但server对client是可见的

  • client访问时,直接输入server的地址。

反向代理

反向代理常用于需要向client屏蔽server端的复杂设计时。

特点:

代理的是server端

server端对client是透明的不可见的

client访问时,输入的是代理的地址

Tomcat集群

当接收大量的请求时,单一服务器终究无法满足需要处理的负荷量。可以组建多台Tomcat服务器提供相同的服务,均衡负载分摊请求,提高系统的扩展性和高可用性。

集群可以提高应用性能,但是增加了服务端设计的复杂性,解决方案:nginx的反向代理。

Nginx反向代理Tomcat集群

  1. 克隆3台虚拟机,分别启动tomcat搭建集群

  2. 配置 /etc/nginx/conf.d/default.conf启动nginx

3.启动nginx

通过nginx可以访问到tomcat集群中的服务。 

vi /etc/sysconfig/network-scripts/ifcfg-ens33

 负载均衡

负载均衡(Load balancing),意思是将负载(工作任务,访问请求)进行平衡,用来在多个计算机(计算机集群)中分配负载,以达到集群系统整体的最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

Nginx的负载均衡策略

  1. 轮询(默认)

  • 优点:实现简单

  • 缺点:不考虑每台服务器的处理能力

  • 配置示例如下:

    upstream 集群名 {
    # 需要负载的server列表
    server ip1:port;
    server ip2:port;
    server ip3:port;
    }
  1. 权重(使用较多)

  • 优点:考虑了每台服务器处理能力的不同,哪台机器性能高就给哪台机器的权重高一些

  • 配置示例如下:

    upstream 集群名 {
    # 需要负载的server列表,weight表示权重
    server ip1:port weight=1;
    server ip2:port weight=2;
    server ip3:port weight=4;
    }
  1. ip hash

  • 优点:能实现同一个用户始终访问同一个服务器

  • 缺点:根据 ip hash 不一定平均

  • 配置示例如下:

    upstream 集群名 {
    ip_hash;
    # 需要负载的server列表
    server ip1:port;
    server ip2:port;
    server ip3:port;
    }

 静态资源服务器(了解)

传统的web项目,一般都将静态资源存放在web应用中,这样做很方便获取静态资源。但是当web项目很大,用户很多,静态资源也很多时,应用服务器的性能就会很低下了。这种情况下一般都会需要一个静态资源的服务器。

Nginx作为静态资源服务器的搭建过程:

  1. 在linux服务器中创建文件夹,并上传静态资源

    示例:
    mkdir -p /var/static
  2. 编辑 /etc/nginx/conf.d/default.conf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值