歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Nginx-Keepalived一鍵安裝腳本

Nginx-Keepalived一鍵安裝腳本   001 #!/bin/bash 002 ################################ 003 yum install openssl-devel popt-devel gcc pcre-devel -y 004 groupadd www 005 useradd -g www www 006 cd /tmp 007 ##############pcre##################### 008 tar -xvf pcre* 009 if [ $? -eq 0 ];then 010     echo "pcre tar ok" 011 else 012     echo "pcre tar no" 013     exit 014 fi 015   016 cd /tmp/pcre-* 017 ./configure 018     if [ $? -eq 0 ];then 019         make && make install 020             if [ $? -eq 0 ];then 021                 echo "pcre ok" 022             else 023                 echo "pcre no" 024             fi 025     else 026         echo "pcre configure no" 027     fi 028 #############nginx###################### 029 nginx_dir=/usr/local/nginx 030 nginx_conf=/usr/local/nginx/conf/nginx.conf 031 cd /tmp 032 tar -xvf nginx-*.tar.* 033 if [ $? -eq 0 ];then 034         echo "nginx tar ok" 035 else 036         echo "nginx tar no" 037         exit 038 fi 039 cd /tmp/nginx* 040 ./configure --user=www --group=www --prefix=$nginx_dir --with-http_stub_status_module --with-http_ssl_module 041     if [ $? -eq 0 ];then 042                 make && make install 043                         if [ $? -eq 0 ];then 044                 sleep 5 045                                 echo "nginx make ok" 046                         else 047                                 echo "nginx no" 048             fi 049         else 050                 echo "nginx configure no" 051         fi 052 cd $nginx_dir 053     if [ ! -f $nginx_conf ];then 054         touch $nginx_dir/conf/nginx.conf 055     fi 056 ######################nginx.conf#################### 057 echo -e "user www www;\nworker_processes 8;\npid /usr/local/nginx/logs/nginx.pid;\nworker_rlimit_nofile 51200;\nevents\n}\nuse epoll;\nworker_connections 51200;\n}" > $nginx_conf 058   059 echo -e "http{\ninclude\tmime.types;\ndefault_type application/octet-stream;\nserver_names_hash_bucket_size 128;\nclient_header_buffer_size 32k;\nlarge_client_header_buffers 4 32k;\nclient_max_body_size 8m;\nsendfile on;\ntcp_nopush 060 on;\nkeepalive_timeout 60;" >> $nginx_conf 061   062 echo -e "tcp_nodelay on;\nfastcgi_connect_timeout 300;\nfastcgi_send_timeout 300;\nfastcgi_read_timeout 300;\nfastcgi_buffer_size 64k;\nfastcgi_buffers 4 64k;\nfastcgi_busy_buffers_size 128k;\nfastcgi_temp_file_write_size 128k;\n" >> $nginx_conf 063   064 echo -e "gzip on;\ngzip_min_length 1k;\ngzip_buffers 4 16k;\ngzip_http_version 1.0;\ngzip_comp_level 2;\ngzip_types text/plain application/x-javascript text/css application/xml;\ngzip_vary on\nupstream backend\n{ip_hash;" >> $nginx_conf 065   066 read -p "Requires several server " server 067 for ((a=1;a<=$server;a++)) 068 do 069  read -p "server ip address " ip 070  echo -e "server $ip:80;" >> $nginx_conf 071 done 072   073 echo -e "}" >> $nginx_conf 074   075 echo -e 'log_format access $remote_addr - $remote_user [$time_local] $request\n$status $body_bytes_sent $http_referer\n$http_user_agent $http_x_forwarded_for;' >> $nginx_conf 076   077 echo -e "server {\nlisten 80;\nlocation / {\nroot /usr/local/tdoa/nginx/html ;\nindex index.php index.htm index.html;\nproxy_redirect off;\nproxy_set_header Host $host;\nproxy_set_header X-Real-IP $remote_addr;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_pass http://backend;\n}" >> $nginx_conf 078   079 echo -e "location /nginx {\naccess_log off;\nauth_basic "NginxStatus";\n#auth_basic_user_file /usr/local/nginx/htpasswd;\n}\naccess_log /var/log/access.log access;\n}\n}" >> $nginx_conf 080 ###########################keepalived################################# 081 ###########################keepalived############################### 082 mandir=/usr/local/src/man 083 kernel=$(uname -r) 084 keepalived_conf=/etc/keepalived/keepalived.conf 085 ################################ 086 cd /tmp 087 tar -xvf keepalived*.tar.gz 088 cd /tmp/keepalived-* 089 #############keepalived make################## 090 ./configure --prefix=/ --mandir=$mandir --with-kernel-dir=/usr/src/kernels/$kernel* 091         if [ $? -eq 0 ];then 092            make 093                 if [ $? -eq 0 ];then 094                         make install 095                         if [ $? -eq 0 ];then 096                                 echo "keepalived ok" 097                            else 098                                 echo "keepalived no" 099                                 exit 100                         fi 101                  else 102                         echo "keeplaived make no" 103                         exit 104                 fi 105          else 106                 echo "keelalived make no" 107         fi 108   109 touch /etc/keepalived/keepalived.conf 110 #######################keepalived.conf################### 111 read -p "$read_p NIC binding  " network 112 ####################keepalived.conf##################### 113 #############Global configuration####################### 114 echo -e " ! Configuration File for keepalived\nglobal_defs {\n\tnotification_email {\n\[email protected]\n\t}\n\tnotification_email_from root@localhost\n\tsmtp_server 127.0.0.1\n\tsmtp_connect_timeout 30\n\trouter_id Nginx-Keepalived\n}" > $keepalived_conf 115 ############Virtual IP Configuration#################### 116 read -p "Requires several server " server 117 for ((a=1;a<=$server;a++)) 118 do 119 read -p "MASTER of BACKUP " states 120 read -p "priority " priority 121 read -p "virtual router id " id 122 read -p "vip address " vip 123 echo -e "vrrp_instance VI_$a {\n\tstate  $states\n\tinterface  $network\n\tvirtual_router_id $id\n\t priority $priority\n\tadvert_int 1\n\tauthentication {\n\tauth_type PASS\n\tauth_pass tdoa\n\t}\n\tvirtual_ipaddress {\n\t$vip/24 dev $network\n\t}\n}" >> $keepalived_conf 124 done 125 ###########################Nginx.sh############################### 126 touch /etc/rc.d/haproxy-keepalived.sh 127 echo -e '#!/bin/bash\nwhile\t:\ndo\n nginxid=`ps -C nginx --no-header | wc -l`\n\tif [ $nginxid -eq 0 ];then\n\t\tusr/local/src/nginx/sbin/nginx\n\t\tsleep 5\n\tnginxid=`ps -C nginx --no-header | wc -l`\n\t\tif [ nginxid -eq 0 ];then\n\t\t\t\t/etc/init.d/keepalived stop\n\t\tfi\n\tfi\n\tsleep 5\n nginxid=`ps -C nginx --no-header | wc -l`\n\tif (($nginxid!= 0));then\n\t\t/etc/init.d/keepalived start\n\tfi\n\tsleep 5\ndone' > /usr/local/nginx/nginx.sh 128 #################################################################### 129 nohup sh /usr/local/nginx/nginx.sh & 130 /usr/local/nginx/sbin/nginx 131 /etc/init.d/keepalived restart 132 echo "nohup sh /usr/local/nginx/nginx.sh &" >> /etc/rc.local 133 echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local 134 echo "/etc/init.d/keepalived restart" /etc/rc.lcoal  
Copyright © Linux教程網 All Rights Reserved