CentOS 6 nginx(Tengine2.1.2)源码编译一键部署脚本

目标:一键部署Nginx

软件:tengine-2.1.2.tar.gz(Nginx的分支)

备注:只适用于CentOS 6 64位系统,附带线上生产环境的Nginx配置文件

软件包:链接:http://pan.baidu.com/s/1jIyZrRS 密码:q9uu

[root@salt-master home]# cat Nginx.sh 

#!/bin/bash

#

#适用版本CentOS 6 64位

#2017.5.11

. /etc/init.d/functions

dir=/root/test

user=www

group=www

del_dir() {

read -p "需要删除${dir} 是否删除[Y|y/N|n]:" del

case $del in

Y|y)

rm -rf $dir

mkdir $dir

cd $dir

;;

N|n)

echo "安装终止"

exit 7

;;

*)

echo "请输入正确的值"

exit 8

;;

esac

}

[ ! -d $dir ] && {

mkdir $dir

cd $dir

} || del_dir

wget http://172.2.0.68/tengine-2.1.2.tar.gz

wget http://172.2.0.68/Nginx.txt

wget http://172.2.0.68/pcre-8.31.tar.bz2

yum -y install gcc gcc-c++  pcre-devel openssl-devel

[ ! `grep $group /etc/group &>/dev/null` ] && {

groupadd www

}

[ ! `grep $user /etc/passwd &>/dev/null` ] && {

useradd -M -g www -s /sbin/nologin www

}

echo "###########安装pcre######################"

sleep 4

tar -jxvf pcre-8.31.tar.bz2

[ $? -eq 0 ] && cd pcre-8.31 || exit 6

./configure --prefix=/usr/local/pcre

make && make install

#######################################

cd ..

[ -e $dir/tengine-2.1.2.tar.gz ] && {

tar -zxvf tengine-2.1.2.tar.gz

cd tengine-2.1.2

}

./configure --user=www --group=www --prefix=/mnt/tengine/tengine-2.1.2 --with-http_stub_status_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_upstream_check_module --with-ipv6

[ $? -eq 0 ] && {

make && make install

} || {

echo "编译出错"

exit 7

}

[ -f $dir/Nginx.txt ] && {

mv /mnt/tengine/tengine-2.1.2/conf/Nginx.conf /mnt/tengine/tengine-2.1.2/conf/Nginx.confbak

cat $dir/Nginx.txt >/mnt/tengine/tengine-2.1.2/conf/Nginx.conf

} || {

echo "配置文件填写错误,请检查配置文件Nginx.conf"

exit 5

}

echo "###启动服务####"

/mnt/tengine/tengine-2.1.2/sbin/Nginx -t

[ $? -eq 0 ] && {

/mnt/tengine/tengine-2.1.2/sbin/Nginx

} || {

echo "启动服务失败"

exit 8

}

###########################################################################################

[root@linux-node8 html]# cat Nginx.txt 

user  www www;

worker_processes  1;

pid /mnt/tengine/tengine-2.1.2/logs/Nginx.pid;

worker_rlimit_nofile 65535;

events {

    use epoll;

    worker_connections  4096;   

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    #charset utf-8;

    access_log off;

    error_log logs/error.log notice;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                     '"$http_user_agent" "$http_x_forwarded_for"$request_time"';

    

    server_names_hash_bucket_size 128;

    client_header_buffer_size 32k;

    large_client_header_buffers 4 32k;

    client_max_body_size 300m;

    sendfile        on;

    tcp_nopush      on;

    keepalive_timeout  65;

    tcp_nodelay     on;

    server_tokens   off;

    client_body_buffer_size 512k;

    proxy_connect_timeout 5;

    proxy_read_timeout    60;

    proxy_send_timeout    5;

    proxy_buffer_size     16k;

    proxy_buffers         4 64k;

    proxy_busy_buffers_size 128k;

    proxy_temp_file_write_size 128k;

    

    gzip on;

    gzip_min_length 1k;

    gzip_buffers 4 16k;

    gzip_http_version 1.1;

    gzip_comp_level 2;

    gzip_types text/plain application/x-javascript text/css application/xml;

    gzip_vary   on;

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index  index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

      

upstream backend_server {

      ip_hash; 

      server  192.168.1.10:80 max_fails=2 fail_timeout=30s; 

      server  192.168.1.20:80 max_fails=2 fail_timeout=30s;

server{ 

    listen 80; 

    server_name www.abc.com;

    server_name abc.com;

    server_name testindex.abc.com;

     location / { 

        proxy_redirect off;

        #proxy_next_upstream http_502 http_504 error timeout invalid_header;

        proxy_set_header   Host             $host; 

        proxy_set_header   X-Real-IP        $remote_addr; 

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_pass         http://backend_server; 

    } 

}

upstream sqzone_api{

      ip_hash; 

      server  192.168.0.10:80 max_fails=2 fail_timeout=30s; 

      server  192.168.0.20:80 max_fails=2 fail_timeout=30s;

  

server{ 

    listen 80; 

    server_name sqZone.test.com;

    server_name sqapi.test.com;

    server_name sqapiby.test.com;

    server_name sqapiby1.test.com;

    server_name sqapitixing.test.com;

    server_name sqapitixingby.test.com;

    server_name sqapitixingby1.test.com;

     location / {

        proxy_redirect off; 

        proxy_set_header   Host             $host; 

        proxy_set_header   X-Real-IP        $remote_addr; 

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_pass         http://sqzone_api; 

    } 

}

}

相关文章

今天小编给大家分享一下excel图案样式如何设置的相关知识点,...
这篇文章主要讲解了“win10设置过的壁纸如何删除”,文中的讲...
这篇“Xmanager怎么显示远程linux程序的图像”文章的知识点大...
今天小编给大家分享一下xmanager怎么连接linux的相关知识点,...
这篇“如何重置Linux云服务器的远程密码”文章的知识点大部分...
本篇内容介绍了“Linux云服务器手动配置DNS的方法是什么”的...