好物优选点击查看详情 京东购买

暂无内容

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动静分离,首先要确保各个资源都代理至正确的主机,而后将所有的资源全部代理至动态服务器。 CentOS 7.1.1503 varnish动静分离反代用户请求插图

环境

CentOS 7.1.1503 varnish动静分离反代用户请求插图1

配置前提


所有节点时间同步。 关闭防火墙、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 172.16.0.69 
php环境测试
 ~]# cat /var/www/html/phpinfo.php <html> <title>Test Page</title> <body> 172.16.0.69 <?php phpinfo(); ?> </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"; else echo "connect 172.16.0.69 failure"; ?> 

测试连接

CentOS 7.1.1503 varnish动静分离反代用户请求插图2 CentOS 7.1.1503 varnish动静分离反代用户请求插图3 CentOS 7.1.1503 varnish动静分离反代用户请求插图4 CentOS 7.1.1503 varnish动静分离反代用户请求插图5

给静态服务器一份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 

测试访问

CentOS 7.1.1503 varnish动静分离反代用户请求插图6 CentOS 7.1.1503 varnish动静分离反代用户请求插图7 CentOS 7.1.1503 varnish动静分离反代用户请求插图8 CentOS 7.1.1503 varnish动静分离反代用户请求插图9

查看是否动静分离

172.16.0.68静态服务器上查看

CentOS 7.1.1503 varnish动静分离反代用户请求插图10

172.16.0.69动态服务器上查看

CentOS 7.1.1503 varnish动静分离反代用户请求插图11

原文链接:https://blog.51cto.com/sonlich/2060785

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享