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]

正向代理:类似于×××功能[代理上网|×××]--> 网关指向代理服务器

Day 54 Nignx代理服务_第1张图片

反向代理:客户端  -访问-> 代理 --> web服务器

Day 54 Nignx代理服务_第2张图片

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

Day 54 Nignx代理服务_第3张图片

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