歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Nginx-Keepalived一鍵安裝腳本

Nginx-Keepalived一鍵安裝腳本

日期:2017/3/1 13:57:57   编辑:關於Linux
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