CentOS 7.1.1503 varnish动静分离反代用户请求
前言
<> 非常感谢Kason老师,您是我们成功的蜡烛,燃烧着自己,照亮我们前进的道路。
varnish配置动静分离时,这些问题困扰了两周:
- 环境:varnish做为反代,你们都知道的:varnish,nginx, haproxy都可以做为反代服务器,varnish比较擅长缓存。后端主机一个提供动态资源及变化的资源(php, css, js),一个提供静态资源(images)
- 每次访问varnish的6081端口,phpinfo.php和php-mysql.php都可以正常访问,肯定没有问题,但访问wodpress时,要么是NOT FOUND要么是直接将目录索引显示出来。
总结:
- 对中小型站点的整个架构没有一个完整、清晰的认识。
- 我只是将老师的配置粘贴进去,从不去想真正的含义。
- 学到puppet时,越觉得前面的东西是多么重要,了解一个个架构,才能更好的驾驶运维工具本身。
站点架构
- 在接入层将动静分离,一般varnish不会做动静分离
- varnish接收到图片和js,css文件后,将其反代到不同的主机。图片至分布式文件系统,js,css文件反代至业务层。
- 所以如果在varnish动静分离,首先要确保各个资源都代理至正确的主机,而后将所有的资源全部代理至动态服务器。
环境
配置前提
所有节点时间同步。
关闭防火墙、SELinux。
yum源:EPEL、Base。~]# ntpdate 0.centos.pool.ntp.org ~]# iptables -F ~]# setenforce 0
配置静态服务器
安装程序包
~]# yum -y install httpd
启动服务
~]# systemctl start httpd.service
测试访问
http://172.16.0.68/
Testing 123..
配置动态服务器
安装程序包
~]# yum -y install httpd php php-mysql mariadb-server php-mbstring php-mcrypt
启动httpd服务
~]# systemctl start httpd.service
测试访问httpd服务
http://172.16.0.69/
Testing 123..
配置mariadb-server
~]# vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
启动mariadb服务
~]# systemctl start mariadb.service
~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
授权用户,供wordpress使用
[root@localhost ~]# mysql
MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wpuser'@'172.16.0.%' IDENTIFIED BY 'wppass';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
测试连接mysql
~]# mysql -uwpuser -pwppass -h172.16.0.69
提供开源php资源
~]# cp wordpress-4.9.1-zh_CN.tar.gz /var/www/html/
展开php程序,为其链接
~]# tar xf wordpress-4.9.1-zh_CN.tar.gz
~]# ln -sv wordpress wp
~]# ll
total 9912
-rw-------. 1 root root 1637 Dec 6 02:45 anaconda-ks.cfg
-rw-r--r--. 1 root root 1556 Jan 14 14:58 genaral_test.sh
drwxr-xr-x. 1 nobody nfsnobody 498 Nov 30 20:20 wordpress
-rw-r--r--. 1 root root 10130710 Dec 1 18:57 wordpress-4.9.1-zh_CN.tar.gz
lrwxrwxrwx. 1 root root 9 Jan 14 15:41 wp -> wordpress
-rw-r--r--. 1 root root 832 Jan 14 14:58 yum.sh
提供连接mariadb-server的配置
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'wpuser');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'wppass');
/** MySQL主机 */
define('DB_HOST', '172.16.0.69');
提供测试页面
web测试页面
~]# cat /var/www/html/index.html
<h1>172.16.0.69</h1>
php环境测试
~]# cat /var/www/html/phpinfo.php
<html><title>Test Page</title><body><h1>172.16.0.69</h1><?phpphpinfo();?></body>
</html>
php-mysql测试页面
~]# cat /var/www/html/php-mysql.php
<?php$conn = mysql_connect('172.16.0.69','wpuser','wppass');if ($conn)echo "connect 172.16.0.69 success";elseecho "connect 172.16.0.69 failure";
?>
测试连接
给静态服务器一份php程序
~]# scp -r /var/www/html/{wordpress,wp} 172.16.0.68:/var/www/html
配置varnish缓存服务器
安装varnish
~]# yum -y install varnish
配置varnish
~]# vim /etc/varnish/varnish.params
‘VARNISH_LISTEN_PORT=80
VARNISH_STORAGE="file,/data/varnish/cache,1g"
~]# vim /etc/varnish/default.vcl
backend default {.host = "172.16.0.68";.port = "80";
}
backend appsrv {.host = "172.16.0.69";.port = "80";
}
sub vcl_recv {if (req.url ~ "(?i)\.(php|jsp|do)$") {set req.backend_hint = appsrv;}if (req.url ~ "(?i)\.(css|js)$") {set req.backend_hint = appsrv;}if (req.url ~ "(?i)\.(jpg|jpeg|png|gif)$") {set req.backend_hint = default;} else {set req.backend_hint = appsrv;}
}
准备目录
~]# install -d -v -o varnish -g varnish /data/varnish/cache
启动varnish
~]# systemctl start varnish.service
~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
测试访问
查看是否动静分离
172.16.0.68静态服务器上查看
172.16.0.69动态服务器上查看
转载于:https://blog.51cto.com/sonlich/2060785
CentOS 7.1.1503 varnish动静分离反代用户请求相关推荐
- CentOS 7.3:LAMP 动静分离部署
前言 之前写过一篇部署LAMP平台的博文:基于centos 7搭建LNMP架构,只是那个是基于同一台服务器部署的,用来做测试网站或者访问量不大的情况下,是可以应付的,那么?如果该web网站访问量特别大 ...
- 秒杀优化 动静分离
一个技术关键点:数据的动静分离 为什么做数据的动静分离? 对于一个秒杀系统来说,在秒杀的场景下,对系统的要求就是三个方面:一是快,二是准,三是稳定. 如何让系统的更快,主要有两个思路:一是提高每一次请 ...
- 理论+实操:部署nginx+apache动静分离
文章目录 一:nginx动静分离介绍 1.1 nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术 1.2 针对PHP的动静分离 1.3 在nginx的配置中,是通过lo ...
- 动静分离和前后端分离
一.前端和后端的概念(怎么区分是前端还是后端) 什么是前端? 这又可以分解成几个小问题. 1.JS是前端么? 2.只要用JS写的,都是前端么? 3.只要是前端工程师写的,都是前端么?4.大前端就是指的 ...
- Nginx——动静分离
1.动静分离: 将动态请求与静态请求分离开,动态请求经过nginx访问tomcat服务器,nginx可以直接做静态请求服务器,静态请求直接由nginx处理,动态请求由tomcat处理. 2.动静分离实 ...
- 动静分离java html_简单了解动静分离和前后端分离
一.前端和后端的概念(怎么区分是前端还是后端) 什么是前端? 这又可以分解成几个小问题. 1.JS是前端么? 2.只要用JS写的,都是前端么? 3.只要是前端工程师写的,都是前端么?4.大前端就是指的 ...
- Nginx+httpd反代实现动静分离
什么是动静分离 为了提高网站的响应速度,减轻程序服务器(apache+php,nginx+php等)的负载,对于静态资源比如图片,js,css,html等静态文件,我们可以在反向代理服务器中设置,将访 ...
- LAMP+haproxy+varnish实现网站访问的动静分离及静态资源缓存
原文 http://sohudrgon.blog.51cto.com/3088108/1601842 系统架构图: 主机规划列表: 全部的主机: CPU : Intel(R) Core(TM)i5- ...
- Nginx+Varnish 实现动静分离,为服务器分流,降低服务器负载
相必大家在看加快网站响应速度方面的文章时,都提过这么一条:动静分离.那怎样实现动静分离呢,这里笔者就亲自搭建相关服务实现动静分离. 动静分离是一种架构,就是把静态文件,比如JS.CSS.图片甚至有些静 ...
最新文章
- (转)自动化管理工具Saltstack之nginx部署
- LeetCode455 分发饼干(二分法)
- 统计学习及监督学习概论
- YUI事件体系之Y.EventTarget
- 2012年最佳30款免费 WordPress 主题
- mysql日志文件的类型和作用_Mysql日志文件和日志类型介绍
- attilax.java 注解的本质and 使用最佳实践(3)O7
- 科研绘图软件GraphPad Prism教程(一)
- 数据库中的超键 候选键 主键 外键
- 集线器故障诊断与排除
- Win10无法访问共享文件,错误代码0x80004005
- 针对笔记本双显卡安装ubuntu16.04双系统,开机只显示背景图解决办法
- 挖个大坑:挑战用纯micropython写一个nes模拟器(一)
- 进销存ERP系统、销售单、采购单、退货单、库存管理、库存盘点、调拨、借入、借出、出库、入库、归还单、收款单、付款单、资金流水、销售报表、采购报表、库存报表、财务报表、商品库、电商erp、连锁erp
- 王者荣耀服务器维护到几点,今晚王者荣耀更新到几点 王者荣耀维护时间王者荣耀公告...
- UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)
- 【历史上的今天】8 月 2 日:字节跳动收购 Musical.ly;PlayStation 之父诞生;早期的女性计算机先驱
- C语言讲义——内存管理
- 关于pwd的含义及用法
- 猪齿鱼Choerodon UI的级联数据源之间、非级联数据源之间的请求状态进行关联
热门文章
- 修改system.img的大小限制
- VB APP对象属性一览表 + 灵活使用VB的APP对象
- ubuntu安装rpm的方法
- 用DOS的FOR命令高速ping指定的所有局域网机器
- 凭一张照片找到视频中你所有的镜头,包括背影丨商汤ECCV 2018论文
- 7天速成、免费学习,这套Python入门课我收藏了丨资源帖
- 奥巴马吐槽川普“笨蛋”的视频火了,这又得“归功”于AI
- 地平线获近亿美元A+轮融资,AI时代的英特尔被英特尔领投
- linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置文件)
- Ignite与Spark内存计算平台对比分析