centos下从零配置nginx(负载均衡)

centos下从零配置nginx(负载均衡)

nginx下载安装

先下载依赖环境,不然装不上
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

  1. 下载源码包
    wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
  2. 解压缩源码
    tar -zxvf nginx-1.12.0.tar.gz

  3. 配置,编译安装 开启nginx状态监测功能
    ./configure --prefix=/opt/nginx112/
    编译完出线makefile文件就开始make && make install
  4. 启动nginx,进入sbin目录,找到nginx启动命令

cd sbin ./nginx #启动 ./nginx -s stop #关闭 ./nginx -s reload #平滑重启 ,修改了nginx.conf之后,可以不重启服务,加载新的配置

  1. 分析nginx的工作目录,内容
    [root@xxy nginx112]# ls client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
conf   存放nginx的配置文件的
    nginx.conf 这里是控制nginx所有功能的文件
html   存放网页html的目录
    index.html 
logs   存放log日志文件

sbin    存放nginx可执行命令的
    nginx脚本命令
    

 #user  nobody;nginx的工作进程数,以cpu核数为数量

cat  nginx.conf  核心配置如下

 #定义nginx工作进程数
worker_processes  5;
 #错误日志

 #error_log  logs/error.log;
 #http定义代码主区域
http {
    include       mime.types;
    default_type  application/octet-stream;
    #定义nginx的访问日志功能
    #nginx会有一个accses.log功能,查看用户访问的记录
    
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #开启日志功能
    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    #开启gzip压缩传输
    gzip  on;
    #虚拟主机1  定义一个 斗鱼网站 
    server {
        #定义nginx的访问入口端口,访问地址是  192.168.11.37:80
        listen       80;
        #定义网站的域名www.woshidouyu.tv
        #如果没有域名,就填写服务器的ip地址  192.168.11.37
        server_name  www.woshidouyu.tv;
        #nginx的url域名匹配
        #只要请求来自于www.woshidouyu.tv/111111111
        #只要请求来自于www.woshidouyu.tv/qweqwewqe
        #只要请求来自于www.woshidouyu.tv/qweqwewqe
        #最低级的匹配,只要来自于www.woshidouyu.tv这个域名,都会走到这个location
        location / {
            #这个root参数,也是关键字,定义网页的根目录
            #以nginx安装的目录为相对路径  /opt/nginx112/html 
            #可以自由修改这个root定义的网页根目录
            root   html;
            #index参数定义网站的首页文件名,默认的文件名
            index  index.html index.htm;
        }
        #错误页面的优化
        error_page  400 401  402  403  404   /40x.html;
}

}

nginx多虚拟主机的配置

1. 在nginx.conf中添加两个虚拟主机标签
server{}
配置文件如下
    server {
        listen       80;
        server_name  qishijd.com;
        location / {
            root   /opt/jd;
            index  index.html index.htm;
        }
        error_page  404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
server {
listen 80;
server_name  qishitb.com;
location  /  {
root  /opt/tb;
index  index.html;
}
}



2. 重启nginx,加载新的配置
nginx -s stop 
nginx 


3. 修改windows的本地hosts解析文件,用于域名解析

windows的hosts文件路径
C:\Windows\System32\drivers\etc

写入如下配置
192.168.11.37  qishitb.com
192.168.11.37  qishijd.com


4. 准备两个虚拟主机的 index.html文件
/opt/jd/index.html  写入  我是京东
/opt/tb/index.html   写入  我是淘宝


5. 在windows浏览器中,查看两个域名对应到的虚拟主机
分别访问qishijd.com 域名
然后访问qishitb.com 域名,查看网站的资料的内容变化





nginx的错误页面优化的功能:
通过error_page参数定义错误页面的 html文件

 server {
        listen       80;
        server_name  qishijd.com;
        location / {
            root   /opt/jd;
            index  index.html index.htm;
        }
        #这个错误页面就应该存放在 /opt/jd/40x.html 
        error_page  404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

nginx访问日志功能

配置方式

  1. 修改nginx.conf配置文件,打开如下配置注释
    nginx log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

    #开启日志功能
    access_log logs/access.log main;

nginx拒绝访问功能
在某一个虚拟主机下,顶一个deny参数,可以拒绝ip地址对虚拟主机的访问

server {
        listen       80;
        server_name  qishijd.com;
        #只要192.168.11.37这个ip访问 qishijd.com/
        location / {
            #deny  192.168.11.0/24;
            root   /opt/jd;
            index  index.html index.htm;
        }
        error_page  404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

nginx的负载均衡

其实就是压力分担

  1. 集群是什么
    一堆服务器做一件事

  2. 集群性能很高
    淘宝本来的核心支付服务器是小型机,非常昂贵,且难以维护
    后来都讲 服务器更换为集群架构
    一堆便宜的服务器,维护者一个功能运转

  3. 高可用
    单点机器很可能宕机
    集群单机机器宕机,不会影响整体的运转

nginx负载均衡的配置

1.实验如下 
准备三台机器
机器1   nginx负载均衡器(发牌的荷官)   192.168.11.158   
    nginx.conf配置如下
    
        #定义nginx负载均衡池,里面默认是轮训算法
        #也可以用weight 权重算法
        #也可以用ip_hash 算法
        
        upstream nginx_pools {
            server  192.168.11.37  weight=10;
            server 192.168.11.167  ;
        }
        server {
            listen       80;
            server_name  192.168.11.158;

            #charset koi8-r;

            #access_log  logs/host.access.log  main;
            #在这里进行反向代理配置
            #192.168.11.158/
            location / {
            proxy_pass http://nginx_pools;
        }
        }




机器2   准备nginx  返回页面数据        192.168.11.37    
    nginx.conf配置如下
            server {
                listen       80;
                server_name  192.168.11.37;
                location / {
                    root   /opt/jd;
                    index  index.html index.htm;
                }
                error_page  404              /40x.html;
                error_page   500 502 503 504  /50x.html;
                location = /50x.html {
                    root   html;
                }
    }

        




机器3   也准备nginx  返回页面数据      192.168.11.167
 server {
        listen       80;
        server_name  192.168.11.167;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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


2.分别启动三台机器,三个nginx服务

3.在windows中访问负载均衡器的地址,查看请求分发,
访问  192.168.11.158

转载于:https://www.cnblogs.com/xxy614899502/p/10255375.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值