shell之nginx安装+负载均衡+会话保持

#!/bin/bash
#by LC 
IP=`ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2{print $4}‘`
ZHANDIAN=/data01/static/share
EXTRA=haixiang.conf
TOOLSDIR=/application/tools
NGINXDIR=/application/nginx1.8.0
EXTARDIR=/application/nginx1.8.0/conf/extra
ALIYUN=/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
NGINXBANEN=nginx-1.8.0
NGINX=http://nginx.org/download/${NGINXBANEN}.tar.gz
STICKYTAR=nginx-sticky-module-1.1.tar.gz
STICKYWGET=http://nginx-sticky-module.googlecode.com/files/$STICKYTAR 
RS1=192.168.1.240
RS2=192.168.1.98:80
panduan(){
if [ $? -ne 0 ]
then 
  echo "===============$1 NOT OK ===================="
  exit 1
fi
}
function checkNginxRoot(){
  if [ $UID -ne 0 ]
  then
     echo ‘PLEASES DO THIS "su -"‘ &&     exit 1
  fi
}
function checkNginxUser(){
  if [ `cat /etc/passwd|grep nginx|wc -l` -eq 0 ]
  then
     useradd nginx -s /sbin/nologin -M
  fi
}
function checkNginxDir(){
  [ ! -d $TOOLSDIR ] && mkdir -p $TOOLSDIR
  [ ! -d /app/ ] && mkdir -p /app
  [ ! -d $NGINXDIR ] && mkdir -p $NGINXDIR
  [ ! -d $EXTARDIR ] && mkdir -p $EXTARDIR
}
function checkYnmANDstart(){  
  wget -O $ALIYUN
  yum makecache
  yum install pcre pcre-devel -y
  yum install openssl openssl-devel -y
  cd $TOOLSDIR  &&  wget $STICKYWGET
  tar -xzvf $STICKYTAR 
  wget $NGINX
  tar xf $NGINXBANEN.tar.gz
  cd $NGINXBANEN
  ./configure --user=nginx --group=nginx --prefix=$NGINXDIR --with-http_stub_status_module --with-http_ssl_module 
panduan bianyi  
  make
panduan make
  make install
  cd ../
  ln -s $NGINXDIR /application/nginx
panduan link
}
function NGINXCONF(){
cat >$NGINXDIR/conf/nginx.conf<<AA
worker_processes  2;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #nginx vhosts config
###########upstream#################
    upstream webservers {
     #ip_hash;
      server $RS1 ;
      server $RS2 ;
###########sticky###################
     #sticky name=srv_id expires=1h domain=www.haixiang.com path=/ ;
    }
    server{
    server_name localhost;
    listen  80;
    location / {
    proxy_pass       http://webservers;
    proxy_set_header Host        \$host;
    proxy_set_header X-Forwarded-For \$remote_addr ;
    }
}
}
AA
}
pkill nginx
pkill httpd
$NGINXDIR/sbin/nginx 
}
function FORcurl(){
  if [ $(curl -I $IP|egrep "403|200|404"|head -1|wc -l) -eq 1 ]
  then
    echo "############"
    echo " OK  OK  OK"
    echo "############"
  fi
  panduan CURL
}
function readme(){
  echo "This is the start command :$NGINXDIR/sbin/nginx OR /application/nginx/sbin/nginx"
  echo "This is the reload  command:$NGINXDIR/sbin/nginx -s reload"
  echo "This is the test command:$NGINXDIR/sbin/nginx -t"
}
main (){
  checkNginxUser
  checkNginxDir
  checkYnmANDstart
  NGINXCONF
  FORcurl
  readme
}
main
时间: 2024-12-25 10:34:43

shell之nginx安装+负载均衡+会话保持的相关文章

Nginx负载均衡会话共享

在使用负载均衡的时候会遇到会话保持的问题,可通过如下方式进行解决 1.使用nginx的ip_hash,根据客户端的来源IP,将请求分配到相同服务器上 2.基于服务端的Session会话共享(mysql/memcache/redis/file) 在解决负载均衡会话问题我们需要了解session和cookie. 1.用户第一次请求服务端网站时,服务端会生成对应的session_id,然后存储至客户端浏览器的cookie中. 2.客户端尝试登陆服务端网站时,浏览器的请求头自动携带cookie信息,在c

Nginx+Keepalived负载均衡高可用(双机热备)

Nginx+Keepalived负载均衡高可用(双机热备) 1.1 Nginx安装及配置 1.2 Keepalived安装及配置 1.3 WebServer安装 1.4 测试Nginx+Keepalived 环境如下: CentOS 6.4_64K eepalived-1.2.12 Nginx-1.4.4 vip:192.168.10.50 master:192.168.10.11 backup:192.168.10.12 webserver1:192.168.10.13 webserver2:

[转帖]利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞

利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞 2018年08月02日 10:06:03 Minza 阅读数 483 https://blog.csdn.net/ha_weii/article/details/81350087 学习一下如何使用sticky 版权声明:创作不易,转载请注明出处 https://blog.csdn.net/ha_weii/article/details/81350087 一,普通的负载均衡 1,启动nginx服务器 之前已经把/us

Nginx做负载均衡时session共享问题详解

用nginx做负载均衡时,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 再者Nginx连接Memcached集群时,Nignx的请求从memcached服务器中根据key获得了value则直接返回value,如果没有获得到value则去MySQL中查询再返回. location / { set $memcached_key "$request_uri"; #设置请求memcached服务器的key memca

Nginx的负载均衡方案详解

Nginx的负载均衡方案详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Nginx的负载均衡方案有: 1.轮询 轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器. 配置的例子如下: http{ upstream sampleapp { server <<dns entry or IP Address(optional with port)>>; server <&l

使用nginx+Apache负载均衡及动静分离

使用nginx+Apache负载均衡及动静分离 介绍    LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层)    客户端都是通过访问分发器的VIP来访问网站 在七层中的网站页面有: .php .html .png .jpeg .jsp 等, 有动态页面有静态页面. 需要在应用层基于不同的应用进行分发. 一:实验拓扑图:     二:实验目标 实战:使用Apache+nginx实现动静分离的负载均衡集群 三:实验环境 主机作用分类 主机名 IP地址 安装软件 N

基于nginx的负载均衡概述与实现

前言: 前面我们提到了lvs和keepalived结合起来的高可用负载均衡,lvs根据原目ip地址及端口将其调度转发至后端 的某个主机,是一种四层的实现,因为lvs是四层的,所以不会受限于套接字或打开的文件数量.不过,如果我们想实现一些更高阶的功能,lvs就显得力不从心了,比如基于uri,cookie,header头部信息的负载均衡,此时我们就可以选择一些7层的负载均衡实现,比如nginx或haproxy等.本次我们就先来讲讲nginx的负载均衡把~ 正文: 其实,如果对lvs的各种类型和调度有

Nginx学习——负载均衡

负载均衡 Nginx提供了较多的负载均衡策略,包括加权轮询.IP哈希.fair.一致哈希等.前两个是Nginx官方源码内置的策略,而后面几个都是第三方模块,所以下面我们重点来看前两个内置策略. Nginx默认采用round_robin加权算法,如果要采用IP哈希策略,那么必须在Nginx的配置文件里通过配置指令ip_hash明确指定. 当整个http配置块被Nginx解析完毕之后,会调用各个http模块对应的初始函数.对于模块ngx_http_upstream_module而言,对应的main配

【Nginx】配置Nginx的负载均衡

阅读目录 参考的优秀文章 在本机运行2个Tomcat Nginx的负载均衡配置 参考的优秀文章 tomcat配置文件server.xml详解 AJP协议总结与分析 Using nginx as HTTP load balancer 在本机运行2个Tomcat 现需要运行两个Tomcat,监听不同端口,让Nginx作负载均衡跳转过来.Tomcat版本:apache-tomcat-7.0.69-windows-x64.zip 要在一台机器运行两个Tomcat,要解决端口的冲突,我们只需要D:\gre