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

发布时间:2020-06-14 08:09:02 作者:xiangys0134
来源:网络 阅读:783

目标:一键部署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; 

    } 

}

}


推荐阅读:
  1. ansible批量部署tomcat的方法
  2. 详解angular应用容器化部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

部署 nginx 自动安

上一篇:ComponentName的简单使用

下一篇:HTTP协议(4)浏览器的使用之开发者工具

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》