Day 54 Nignx代理服务
1.1 Ansible剧本实现过程
1.1.1 基础环境
仓库 base epel nginx php mysql
软件 rsync,nfs-utils,vim,tree,wget,iftop,iotop,sysstat,mailx
配置 /etc/rsync.pass[客户端]
用户 www uid=666 gid=666
目录 /data /backup 权限 www
调整 firewalld selinux ssh 文件描述符
脚本 /server/scripts/
定时 全网备份的一个脚本
1.1.2 应用环境-nginx
1.安装 nginx
2.配置 nginx.conf
3.配置 [将conf.d目录直接推至对端]---> notify
4.启动
5.handlers
6.代码--->[wordpress|wecenter|edusoho]
7.授权
1.1.3 应用环境-php
1.安装 php
2.配置 php-fpm.conf
3.配置 [php-fpm.d目录直接推至对端]---> notify
4.配置 php.ini
5.启动
6.handlers
7.代码--->[wordpress|wecenter|edusoho]
8.授权
1.1.4 应用环境-mysql
1.安装
2.配置 /etc/my.cnf
3.启动
4.创建数据库
5.授权[all 这是有问题的
1.1.5 应用环境-nfs
1.安装
2.配置 /etc/exports
3.启动
4.安装sersync
5.配置conf.xml
6.启动
1.1.6 应用环境-rsync
1.安装
2.配置 /etc/rsyncd.conf
3.启动
4.虚拟用户->/etc/rsync.password
5.校验脚本 --》/server/scripts/
6.增加配置 /etc/mail.rc
7.定时任务 每天早上凌晨5点执行校验脚本
2.1 Nginx代理服务概述[flag]
正向代理:类似于×××功能[代理上网|×××]--> 网关指向代理服务器
反向代理:客户端 -访问-> 代理 --> web服务器
2.1.1 正向与反向代理的区别
区别在于代理的对象不一样
正向代理代理的对象是客户端
反向代理代理的对象是服务端
2.1.2 Nginx代理配置语法
推荐写法
server{
listen 80;
server_name blog.oldboy.com;
location / {
proxy_pass http://172.16.1.7;
include proxy_params;
}
}
server{
listen 80;
server_name edu.oldboy.com;
location / {
proxy_pass http://172.16.1.7;
include proxy_params;
}
}
2.1.3 Nginx反向代理示例[flag]
角色 外网IP(NAT) 内网IP(LAN) 主机名
Proxy eth0:10.0.0.5 eth1:172.16.1.5 lb01
web01 eth0:10.0.0.7 eth1:172.16.1.7 web01
2.1.4 web01服务器:
配置一个网站,监听在8080,仅运行172网段能访问
[root@web01 ~]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# vim web.conf
server {
listen 8080;
server_name 172.16.1.7;
location / {
root /code_8080;
index index.html;
deny 10.0.0.0/24;
allow all;
}
}
[root@web01 conf.d]# mkdir /code_8080
[root@web01 conf.d]# echo "web01-7...." >/code_8080/index.html
[root@web01 conf.d]# systemctl restart nginx
2.1.5 proxy代理服务器:
配置一个代理,监听在80,让10.0.0.1客户端,能够通过代理访问到后端的 172.16.1.7这个网站
[root@lb01 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
2.1.6 安装
[root@lb01 ~]# yum install nginx -y
2.1.7 配置
[root@lb01 ~]# cd /etc/nginx/conf.d/
[root@lb01 conf.d]# rm -f default.conf
[root@lb01 conf.d]# cat proxy_web_node1.conf
server {
listen 80;
server_name nginx.oldboy.com;
location / {
proxy_pass http://172.16.1.7:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
[root@lb01 conf.d]# systemctl enable nginx
[root@lb01 conf.d]# systemctl start nginx
2.1.8 优化下proxy的配置
[root@lb01 conf.d]# cat /etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
######
[root@lb01 conf.d]# cat proxy_web_node1.conf
server {
listen 80;
server_name nginx.oldboy.com;
location / {
proxy_pass http://172.16.1.7:8080;
include proxy_params;
}
}
[root@lb01 conf.d]# systemctl restart nginx
2.1.9 配置hosts解析
proxy
10.0.0.5
172.16.1.5
web
172.16.1.7
如果出现故障
1.直接访问web测试是否没任何问题
2.检查proxy代理服务器是否有问题[没有携带头部信息|proxy_pass 写错了]
代理缺点:
只能代理转发一台服务器
proxy web 172.16.1.7
blog.oldboy.com -》 blog.oldboy.com