9.Nginx代理
[toc]
nginx代理概述
正向代理 代理客户端 VPN 代理客户端访问外网
反向代理 代理服务端
区别在于对象不同
正向代理的对象是客户端,往往为客户端服务
反向代理的对象是服务端,往往为服务端服务
反向代理模式
nginx配置模块
http websocket https
ngx_http_proxy_moudule
fastcgi
ngx_htttp_fastcgi_moudule
uwsgi
ngx_http_uwsgi_moudule
grpc
ngx_http_v2_moudule
部署Nginx代理环境准备
主机名
WanIP
LanIP
角色
应用
web01
10.0.0.7
172.16.1.7
web网站
nginx php wordpress
db01
10.0.0.51
172.16.1.51
数据库
mariadb
lb01
10.0.0.5
172.16.1.5
反向代理服务器
nginx
部署web服务器(web01)1234567891011121314151617181920212223 ...
8.sersync实时同步
[toc]
seRsync使用实现架构1.实现LNMP架构
2.独立设备的数据库
3.NFS共享存储
4.实现用户数据的sersync实时同步,(nfs服务器中/data的数据实时同步到backup服务器)
rsync结合inotify实时同步123456789101112131415161718192021222324252627282930313233343536# inotify的使用场景如果只需要备份 不需要同步 数据需要同步# 安装inotify-toolsyum -y install inotify-tools# 选项-m 持续监控-r 递归-q 静默,仅打印时间信息--timefmt 指定输出时间格式--format 指定事件输出格式%Xe 事件%w 目录%f 文件-e 指定监控的事件access 访问modify 内容修改attrib 属性修改close_write 修改真实文件内容open 打开create 创建delete 删除umount 卸载/usr/bin/inotifywait -mrq --format '%Xe %w %f' -ecr ...
7.部署博客优化:使用NFS共享web数据
[toc]
环境规划环境结构
环境准备
主机名
WanIP
LanIP
角色
安装应用
web01
10.0.0.7
172.16.1.7
web网站共享存储的客户端
nginx php nfs
web02
10.0.0.8
172.16.1.8
web网站共享存储的客户端
nginx php nfs
db01
10.0.0.51
172.16.1.51
数据库
mysql(mariadb)
nfs
10.0.0.31
172.16.1.31
共享存储的服务端
nfs
使用LNMP的架构搭建wecenter并实现NFS共享存储(预搭建LNMP)web01和web02搭建wecenter123456789101112131415161718192021222324252627282930# 下载wecenter网页代码cd /code && wget http://test.driverzeng.com/Nginx_Code/WeCenter_3-2-1.zip# 解压unzip WeCenter_3-2-1.zip# 创建并修改nginx的网页 ...
6.部署博客优化:优化PHP本地连接和更换主题
[toc]
环境规划环境结构
环境准备
主机名
WANIP
LANIP
角色
安装应用
web01
10.0.0.7
172.16.1.7
web网站
nginx php
web02
10.0.0.8
172.16.1.8
web网站
nginx php
db01
10.0.0.51
172.16.1.51
数据库
mysql(mariadb)
开始部署部署web021234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071# 添加yum源scp /etc/yum.repos.d/nginx.repo 10.0.0.8:/etc/yum.repos.d/# 生成缓存yum makecache# 安装nginxyum install -y nginx# 安装phpyum install -y php71w php71w-cli php71w-common php ...
5.迁移MySQL数据库文件
[toc]
迁移mysql数据库文件环境准备12345# 搭建nginx phpweb01 10.0.0.7 172.16.1.7# mysqldb01 10.0.0.51 172.16.1.51
旧数据库的操作1234567891011121314151617181920212223242526# wp库数据备份mysqldump -u用户名 -p密码 -B库名 > /tmp/wp.sqlmysqldump -uroot -p123 -B wp > /tmp/wp.sql# 将备份文件拷贝到数据库服务器scp /tmp/wp.sql 172.16.1.51:/tmp/# 停止web01数据库服务systemctl stop mariadbsystemctl disable mariadb# 修改wordpress文件cd /code/wordpressvim wp-config.php// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** ///** WordPress数据库的名称 */define('DB_NAME', 'w ...
4.LNMP架构环境部署博客
[toc]
LNMP架构工作流程简介
LNMP含义解析
1234L linuxN nginxM mysqlP php
LNMP架构流程描述
静态请求
Nginx服务是可以直接处理动态请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回
动态请求
Nginx服务是不能直接处理动态请求,Nginx通过fastcgi协议转交给后端的PHP程序处理,如下图所示:
用户通过http协议发起请求,请求会先抵达LNMP架构中的Nginx
Nginx会根据用户的请求进行判断,这个判断是有Location进行完成
判断用户请求的是静态页面,Nginx直接进行处理
判断用户请求的是动态页面,Nginx会将该请求交给fastcgi协议下发
fastgi会将请求交给php-fpm管理进程, php-fpm管理进程接收到后会调用具体的工作进程warrap
warrap进程会调用php程序进行解析,如果只是解析代码php直接返回
如果有查询数据库操作,则由php连接数据库(用户 密码 IP)发起查询的操作
最终数据由*mysql->php->php-fpm-> ...
3.Nginx的常用基础模块
[toc]
目录索引模块配置目标索引模块123# 目录索引模块ngx_http_autoindex_module模块处理以斜杠字符('/')结尾的请求,并生成目录列表。当ngx_http_index_module模块找不到索引文件时,通常会将请求传递给ngx_http_autoindex_module模块。
目录索引模块配置功能12345678910# 模块配置参数autoindex on;|off;## 如果请求的访问站点目录下没有索引文件,将会以站点目录的形式显示在网页中autoindex_exact_size off;|on;## 如果开启就是显示文件大小,关闭就是显示字节大小autoindex_localtime on;|off;## 如果关闭就是显示格林威治时间,如果开启就是系那是本地服务器时间autoindex_format html/xml/json/jsonp;## 可以将网页以html/xml/json/jsonp的形式展示
基础模块基础模块配置文件解析12345678910111213141516# 进入配置文件vim /etc/ngi ...
2.Nginx日志格式和日志切割解析及nginx虚拟主机
[TOC]
nginx的日志格式
nginx访问日志
1234567891011121314151617log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 将容器运行的输出内容存放在文件中(docker run -it busybox free -m) > /opt/nginx/mem.info# 查看输出信息cat /opt/nginx/mem.infototal used free shared buff/cache availableMem: 973 315 ...
16.Nginx高可用:keepalived
[toc]
nginx高可用keepalive的作用keepalive高可用软件
什么是高可用
一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。
lb01负载均衡,lb02就是lb01的备机,lb01挂了,lb02会快速接管
高可用软件
硬件
F5
软件
keepalive
heartbeat
reids
redis-Cluster
sentinel
mysql
MHA
MGR
keepalive工作原理keepalived软件是基于VRRP协议实现的,VRRP虚拟路由冗余协议,主要用于解决单点故障问题
12345问题一:假设用户将指向都修改为backup路由器,那么master路由器修好了怎么办?答:使用keepalive可以在用户无感知状态下进行切换问题二:假设Master网关故障,我们将backup网关配置为master网关的ip是否可以?答:不可以,因为ARP是将IP和MAC地址映射起来存放在文件中,修改IP后MAC地址仍不一致;可以使用keepalive创建一个相同的VIP和VM ...
15.Nginx搭建https并配置ssl证书
[toc]
nginx实现httpshttps的作用数据加密传输;OSI七层模型中:加密或解密
https注意事项
证书过期无法续费
三级域名无法使用https www.xxx.com main.m.taobao.com
注意证书的颜色
绿色 全站URL都是https加密
红色 假证书或者证书过期
黄色 并非全站URL都是https加密的
证书购买
单域名
只能单个域名使用
www.xxx.com
混合域名
多个域名使用该证书
www.xxx,com
www.yyy.com
泛域名
通配符域名证书
*.xxx.com
blog.xxx.com
picuure.xxx.com
moveie.xxx.com
gam.xxx.com
rw.xxx.com
模拟网站被劫持篡改搭建网页(web01)123456789101112131415161718192021222324252627282930313233343536373839# 编辑网页配置文件vim /etc/nginx/conf.d/test.confserver { listen ...