Day 54 Nignx代理服務

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]

正向代理:類似於×××功能[代理上網|×××]--> 網關指向代理服務器

1.png

反向代理:客戶端  -訪問-> 代理 --> web服務器

2.png

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

3.png

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 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章