<> 很是感謝Kason老師,您是咱們成功的蠟燭,燃燒着本身,照亮咱們前進的道路。php
varnish配置動靜分離時,這些問題困擾了兩週:css
- 環境:varnish作爲反代,大家都知道的:varnish,nginx, haproxy均可以作爲反代服務器,varnish比較擅長緩存。後端主機一個提供動態資源及變化的資源(php, css, js),一個提供靜態資源(images)
- 每次訪問varnish的6081端口,phpinfo.php和php-mysql.php均可以正常訪問,確定沒有問題,但訪問wodpress時,要麼是NOT FOUND要麼是直接將目錄索引顯示出來。
總結: html
- 對中小型站點的整個架構沒有一個完整、清晰的認識。
- 我只是將老師的配置粘貼進去,從不去想真正的含義。
- 學到puppet時,越以爲前面的東西是多麼重要,瞭解一個個架構,才能更好的駕駛運維工具自己。
全部節點時間同步。
關閉防火牆、SELinux。
yum源:EPEL、Base。mysql~]# 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
~]# systemctl start httpd.service
http://172.16.0.69/ Testing 123..
~]# vim /etc/my.cnf.d/server.cnf [mysqld] skip_name_resolve = ON innodb_file_per_table = ON
~]# 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
[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 -uwpuser -pwppass -h172.16.0.69
~]# cp wordpress-4.9.1-zh_CN.tar.gz /var/www/html/
~]# 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
/** WordPress數據庫的名稱 */ define('DB_NAME', 'wordpress'); /** MySQL數據庫用戶名 */ define('DB_USER', 'wpuser'); /** MySQL數據庫密碼 */ define('DB_PASSWORD', 'wppass'); /** MySQL主機 */ define('DB_HOST', '172.16.0.69');
~]# cat /var/www/html/index.html <h1>172.16.0.69</h1>
~]# cat /var/www/html/phpinfo.php <html> <title>Test Page</title> <body> <h1>172.16.0.69</h1> <?php phpinfo(); ?> </body> </html>
~]# 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"; ?>
~]# scp -r /var/www/html/{wordpress,wp} 172.16.0.68:/var/www/html
~]# yum -y install 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
~]# 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