美文网首页
NGINX负载均衡,动静分离,反向代理,日志切割

NGINX负载均衡,动静分离,反向代理,日志切割

作者: 老汉健身 | 来源:发表于2018-06-12 10:21 被阅读14次

    NGINX负载均衡配置:

    1.在/usr/local/nginx/conf下新建一个conf配置文件(名字随便取),这里以fzjh.conf为例,当然你也可以备份nginx.conf之后,直接对nginx.conf进行编辑.

    user nobody;

    worker_processes  4;

    events {

        worker_connections  10240;

    }

    http {

        upstream demo{

         #配置ip_hash,添加该配置后,系统会自动记录用户第一次访问后被分配的服务器,然后在接下来的所有访问中,该用户都只能被分配到第一次访问时访问的服务器,对所有用户都是如此,当然这样并不影响负载均衡,依然可以负载均衡,只是牺牲了一定的负载均衡效果.

          #ip_hash;

          server 115.239.211.112; #这里为集群的服务器Ip,集群服务器中的内容应该保持一致,这里为了演示,选了不同内容的服务器,以便看的出来.

          server 140.205.135.3 weight=2;//可以设置权值,权值越大,分配到的几率越大,权值不设置的话默认为1.

        }

        server{

            listen 8089;#监听的端口,可以自己指定

            server_name  www.laohan1.com;#这里的虚拟主机指向的域名,可以在windows中配置hosts实现.

            location /{

              proxy_pass http://demo;#指定反向代理到哪个服务器组,一定要与前面upstream的name保持一致.

            }

        }

    }

    以上便是负载均衡和反向代理的配置,动静分离只需要在Location中添加配置过滤,这里引用阿里云官方的配置方法,非常直观,备用.

    案例:分离动态页面和静态页面 

    主机s100上配置一个Nginx

    upstream statics{ 

    server s101:80 weight=1; #访问配置了静态页面的nginx 

    server s102:80 weight=1; #访问配置了静态页面的nginx 

    server s103:80 weight=1; #访问配置了静态页面的nginx 

    upstream tomcats{ 

    server s101:8080 weight=1;#访问tomcat 

    server s102:8080 weight=1;#访问tomcat 

    server s103:8080 weight=1;#访问tomcat 

    server{ 

    listen 80; 

    server_name s100; 

    access_log off; 

    location ~* /.(png|html|js|css)$ { 

    proxy_pass http://statics; 

    #所有以.png .html .js .css结尾的url进入此路径 

    location / { 

    proxy_pass http://tomcats; 

    #其它url进入此路径 

    主机s100,s101, s102上分别配置nginx 和 tomcat(略)

    server{ 

    listen 80; 

    server_name s101; 

    location / { 

    root html; #存放了静态页面的根目录 

    index index.html index.htm; #主页 

    }

    详情可以参考阿里云:https://www.aliyun.com/jiaocheng/125695.html?spm=5176.100033.1.13.hNcx0X

    日志切割: 

    1.手动切割: 先将原来的日志文件备份 mv access.log 20180612.log,备份为当前的日期即可. 然后使用kill -USR1 +PID 重新开启新的日志

    2.自动切割:

    2.1在logs文件夹下通过touch cutlog.sh新建cutlog.sh文件,并编辑:vi cutlog.sh,编辑里面内容如下:

    D=$(date +%Y%m%d) #获取当前日期

    mv /usr/local/nginx/logs/access.log ${D}.log #将原来的日志文件备份,重命名为今天的日期

    kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) #重新开启记新的日志

    2.2通过crontab(类似于java中的定时器)来定时执行cutlog.sh文件:

    crontab -e(新建一个定时执行的任务) 

    59 23 * * * /bin/bash /usr/local/nginx/logs/cutlog.sh(代表在每天的23:59执行该任务)

    创建好了可以通过crontab -l来查看是否创建成功.

    附crontba时间的格式:

    基本格式 :

    *  *  *  *  *  command

    分 时 日 月 周 命令

    第1列表示分钟1~59 每分钟用*或者 */1表示

    第2列表示小时1~23(0表示0点)

    第3列表示日期1~31

    第4列表示月份1~12

    第5列标识号星期0~6(0表示星期天)

    第6列要运行的命令

    crontab文件的一些例子:

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart

    上面的例子表示每晚的21:30重启apache。

    相关文章

      网友评论

          本文标题:NGINX负载均衡,动静分离,反向代理,日志切割

          本文链接:https://www.haomeiwen.com/subject/ggqkeftx.html