Nginx安装与配置

一、Nginx简介

1、什么是Nginx

Nginx是高性能的HTTP和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。

2、能做什么

  • 反向代理
  • 负载均衡
  • 动静分离

二、Nginx安装(Centos 8)

1、安装Nginx需要的依赖

1)安装pcre依赖

# wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
# tar -xvf pcre-8.37.tar.gz
# cd pcre-8.37
#./configure
# make install

2) 安装openssl、zlib、gcc依赖

# yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

2、安装Nginx

下载地址:https://nginx.org/
安装版本nginx-1.21.6.tar.gz

# tar -xvf nginx-1.21.6.tar.gz   #解压
# cd nginx-1.21.6/               # 进入安装目录
# ./configure
# make && make install           # 安装
# cd /usr/local/nginx/sbin/      # 进入sbin目录
# ./nginx                        # 启动Nginx

浏览网站:http://ip 出现如下图表示安装成功,如果未成功检查防火墙是否开放80端口
在这里插入图片描述

三、常用命令

# 首先要进入到sbin目录
# cd /usr/local/nginx/sbin/      # 进入sbin目录
# ./nginx -v                     # 查看nginx版本
# ./nginx                        # 启动nginx
# ./nginx -s stop                #停止nginx
# ./nginx -s reload              # 重新加载nginx 

四、Nginx配置文件

1、配置文件位置

# cd /usr/local/nginx/conf/nginx.conf

2、配置文件的内容

nginx.conf文件
在这里插入图片描述

3、反向代理配置(可以创建多个server块,同时进行多个代理)

在这里插入图片描述
nginx.conf文件

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            proxy_pass http://127.0.0.1:8080;  # 反向代理
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

4、负载均衡配置

假设127.0.0.1:8080与127.0.0.1:8081为两个服务器
在这里插入图片描述
nginx.conf文件

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    
    upstream myserver {   # 负载均衡
        # 1.轮询
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;

        # 2.权重
	    #server 127.0.0.1:8080 weight=5;
        #server 127.0.0.1:8081 weight=10;

	    # 3.ip_hash
	    #ip_hash;
	    #server 127.0.0.1:8080;
        #server 127.0.0.1:8081;

	    # 4.fair
	    #server 127.0.0.1:8080;
        #server 127.0.0.1:8081;
	    #fair;
    }
    
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            #proxy_pass http://127.0.0.1:8080;  # 反向代理
            proxy_pass http://myserver;  # 反向代理 + 负载均衡
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

分配服务器的四种策略介绍

  • 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  • 权重(weight):代表权重,默认为1,权重越高被分配的客户端越多
  • ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
  • fair(第三方):按后端服务器的响应时间分配请求,响应时间短的优先分配

nginx的属性
1、down属性:标识该服务宕机
2、 backup属性:标识该服务为备用机
3、max_fails=1 fail_timeout=60s:宕机服务器高可用的实现,当服务器宕机时,如果访问的失败次数达到最大的失败次数时,则表示为down(自动完成),在一定的周期之内,如果服务器恢复正常,则还是可以访问。

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    
    upstream myserver {   # 负载均衡
        # 1.down 
        #server 127.0.0.1:8080  down;   #  宕机状态,不提供服务
        #server 127.0.0.1:8081;
        
        # 2.backup
        #server 127.0.0.1:8080;
        #server 127.0.0.1:8081 backup;  # 当8080宕机时提供服务
        
        # 3.down
        server 127.0.0.1:8080 max_fails=1 fail_timeout=60s;
        server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;
    }
    
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            #proxy_pass http://127.0.0.1:8080;  # 反向代理
            proxy_pass http://myserver;  # 反向代理 + 负载均衡
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

5、动静分离配置

假设目录结构为如下图:
image文件夹中存放图片,www文件夹中存放html文件
在这里插入图片描述
nginx.conf配置
在这里插入图片描述
nginx.conf文件


worker_processes  1;  # worker数,最好设置和cpu数量相同

events {
    worker_connections  1024;   # 连接数
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    
    server {
        listen       80;
        server_name  localhost;

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

        location /image/ {
           root /data/;
           autoindex on; # 列出当前文件夹中的内容
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

通过浏览器访问
静态页面:http://localhost/www/index.html
静态资源:http://localhost/image/123.jpg

autoindex on; 的作用访问http://localhost/image/ 会有如下图效果
在这里插入图片描述

6、高可用配置(主从模式配置)

在这里插入图片描述

1)准备工作

  1. 需要两台服务器 192.168.1.101 和 192.168.1.102
  2. 在两台服务器上分别安装nginx
  3. 在两台服务器上分别安装keepalived
    这里使用yum命令安装,其他安装方法请自己查找相关资料
 # yum install keepalived -y

安装之后在etc目录里面生成keepalived目录,其中keepalived.conf为配置文件

2) 修改keepalived的配置文件keepalived.conf

在这里插入图片描述
keepalived.conf文件

! Configuration File for keepalived

# 全局定义
global_defs {  
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   #vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}

# 脚本配置
vrrp_script chk_http_port {
   script "/usr/local/src/nginx_check.sh"   # 检测脚本文件,需要自己编写,路径根据实际路径修改
   interval 2      # 检测脚本执行的间隔,2表示两秒
   weight 2        # 权重参数
}

# 虚拟ip配置
vrrp_instance VI_1 {
    state MASTER      # 注意:主服务器用MASTER  备份服务器用BACKUP
    interface ens32    # 要绑定虚拟ip的网卡(用命令 ifconfig 查看网卡
    virtual_router_id 51 # 主、备机的virtual_router_id必须相同
    priority 100         # 主、备机各取不同的优先级,主机值较大,备份机值较小
    advert_int 1
    authentication {        # 权限校验的方式
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100       # VRRP H虚拟地址
    }
}

3)编写检测脚本nginx_check.sh

检测脚本nginx_check.sh,用于检测nginx是否运行正常,脚本文件要放在keepalived.conf配置的路径下

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

4) 启动nginx 与 keepalived

# 启动ngixn
# cd /usr/local/nginx/sbin
# ./nginx

# 启动 keepalived
# systemctl start keepalived.service

5) 测试

  1. 通过虚拟ip进行访问 http://192.168.1.110
  2. 关闭主服务器中的nginx和keepalived,然后再进行访问
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

制作bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值