您的位置:首页 > 运维架构 > Nginx

ansible安装nginx (tengine)

2017-06-23 11:14 169 查看
# 接上篇

http://xiong51.blog.51cto.com/5239058/1941193

ansible管理机:192.168.8.35 名称:kick
tomcat主机: 192.168.8.244,192.168.8.245
haproxy : 192.168.8.35
系统版本: Centos7.2

[root@kick ~]# ansible nginx -m copy -a "src=tengine-2.2.0.tar.gz dest=/tmp"
[root@kick ~]# ansible nginx -m copy -a "src=teng.sh dest=/tmp"
[root@kick ~]# ansible nginx -m shell -a "/bin/bash /tmp/teng.sh"

##################### 安装脚本 #####################
#!/bin/bash
#

yum -y install pcre pcre-devel openssl openssl-devel

tar xf /tmp/tengine-2.2.0.tar.gz -C /tmp
cd /tmp/tengine-2.2.0
./configure --prefix=/usr/local/nginx/ --with-http_realip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_auth_request_module --with-http_upstream_check_module
make -j 4 && make -j 4 install
useradd nginx -s /sbin/nologin
mkdir /usr/local/nginx/run
chown nginx.nginx /usr/local/nginx -R
chmod 777 /usr/local/nginx/run
####################################################

################## 启动脚本 ##################
cat >> /usr/lib/systemd/system/nginx.server << EOF
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
# Nginx will fail to start if /usr/local/nginx/logs/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621 ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
#####################################################

[root@kick ~]# ansible nginx -m copy -a "src=nginx.service dest=/usr/lib/systemd/system/"
[root@kick ~]# ansible nginx -m shell -a "systemctl daemon-reload"
[root@kick ~]# ansible nginx -m shell -a "systemctl restart nginx"

########## 如一直出错检查一下端口被占情况 #########

####################### nginx 配置文件 ##########################
user nginx;
worker_processes 2;
error_log /usr/local/nginx/logs/error.log;
pid /usr/local/nginx/logs/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/local/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
log_format main '$http_x_forwarded_for $request_time - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';

access_log /usr/local/nginx/logs/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

include /usr/local/nginx/conf/mime.types;
default_type application/octet-stream;

upstream xiong.com {
server 192.168.8.247:8080;
server 192.168.8.246:8080;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}

server {
listen 80 default_server;
server_name localhost;
charset utf-8;
server_tokens off;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
proxy_pass http://xiong.com; proxy_set_header Host $proxy_host;
proxy_set_header Connection Close;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /status {
check_status;
access_log off;
}
}
}
###########################################################################

# 复制文件并生启Nginx
[root@kick ~]# ansible nginx -m copy -a "src=nginx.conf dest=/usr/local/nginx/conf/"
[root@kick ~]# ansible nginx -m shell -a "systemctl restart nginx"

# nginx_check_module 访问 在Haproxy中访问效果,也可以直接使用nginx地址访问 http://192.168.8.35:81/status
###################### haproxy配置 ######################
# kickstact中安装
yum -y install haproxy

##################### haproxy配置文件 #####################
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

stats socket /var/lib/haproxy/stats

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

listen stats
bind 0.0.0.0:88 #配置状态信息 端口号为88
mode http #模式为http
stats enable #开启查询状态
stats hide-version #隐藏版本号
stats uri /xiong?status #访问状态的uri
stats auth xiong:xiong #认证帐号密码信息

frontend http *:81
option forwardfor header X-Forwarded-For #配置后端显示的IP信息
default_backend tes #默认后端地址

backend tes
balance roundrobin #使用rr方式
server tes1 192.168.8.244:80 check
server tes2 192.168.8.245:80 check
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx haproxy tengine