如何做微商城網(wǎng)站建設(shè)國內(nèi)推廣平臺
緊接著前面的集群架構(gòu)深化—中小型公司(拓展到大型公司業(yè)務(wù))–下面圖簡單回顧一下之前做的及故障核心知識總結(jié)(等后期完全整理后,上傳資源希望能幫大家)
web集群架構(gòu)-接入負(fù)載均衡部署web02服務(wù)器等
web集群-搭建web02節(jié)點(diǎn)
[root ~]#yum install php[root ~]#cd /etc/nginx/conf.d/
[root /etc/nginx/conf.d]#ll
-rw-r--r-- 1 root root 581 6月 5 20:58 blog.wulinlinux.cn.conf
-rw-r--r-- 1 root root 321 5月 26 10:42 buy.wulinlinux.cn.conf
-rw-r--r-- 1 root root 236 6月 4 18:53 cfg.wulinlinux.cn.conf
-rw-r--r-- 1 root root 1072 4月 24 02:24 default.conf
-rw-r--r-- 1 root root 151 5月 26 10:43 hs.wulin.cn.conf
-rw-r--r-- 1 root root 262 6月 3 20:37 proxy.wulinlinux.cn.conf
-rw-r--r-- 1 root root 111 5月 26 10:44 wy.wulinlinux.cn.conf[root /etc/nginx/conf.d]#cd /etc/php
php.d/ php-fpm.d/ php-zts.d/
[root /etc/nginx/conf.d]#cd /etc/php-fpm.d/
[root /etc/php-fpm.d]#ll
總用量 20
-rw-r--r-- 1 root root 17964 6月 5 20:54 www.conf[root /etc/php-fpm.d]#scp www.conf 192.168.65.8:`pwd`
root.168.65.8's password:
www.conf 100% 18KB 17.6MB/s 00:00
[root /etc/php-fpm.d]#cd /app/code/blog/
[root /app/code/blog]#ll
總用量 232
-rw-r--r-- 1 www www 405 2月 6 2020 index.php
-rw-r--r-- 1 www www 19416 5月 26 15:39 license.txt
-rw-r--r-- 1 www www 7348 5月 26 15:39 readme.html
drwxr-xr-x 3 root root 21 6月 5 21:36 up-content
-rw-r--r-- 1 www www 7387 5月 26 15:39 wp-activate.php
drwxr-xr-x 9 www www 4096 5月 26 15:39 wp-admin
-rw-r--r-- 1 www www 351 2月 6 2020 wp-blog-header.php
-rw-r--r-- 1 www www 2323 5月 26 15:39 wp-comments-post.php
-rw-rw-rw- 1 www www 3283 5月 26 14:32 wp-config.php
-rw-r--r-- 1 www www 3328 5月 26 15:39 wp-config-sample.php
drwxr-xr-x 7 www www 99 5月 27 16:59 wp-content
-rw-r--r-- 1 www www 5638 5月 26 15:39 wp-cron.php
drwxr-xr-x 30 www www 12288 5月 26 15:39 wp-includes
-rw-r--r-- 1 www www 2502 11月 27 2022 wp-links-opml.php
-rw-r--r-- 1 www www 3927 5月 26 15:39 wp-load.php
-rw-r--r-- 1 www www 50917 5月 26 15:39 wp-login.php
-rw-r--r-- 1 www www 8525 5月 26 15:39 wp-mail.php
-rw-r--r-- 1 www www 28427 5月 26 15:39 wp-settings.php
-rw-r--r-- 1 www www 34385 5月 26 15:39 wp-signup.php
-rw-r--r-- 1 www www 4885 5月 26 15:39 wp-trackback.php
-rw-r--r-- 1 www www 3246 5月 26 15:39 xmlrpc.php
- 打包代碼排除上傳目錄
[root /app/code/blog]#tar zcf ~/wordpress-no-uploads.tar.gz . --exclude=wp-content/uploads/*
[root@web01 /app/code/blog]#tar tf ~/wordpress-no-uploads.tar.gz |grep uploads
./wp-content/uploads/
[root@web01 ~]#scp wordpress-no-uploads.tar.gz 192.168.65.8:`pwd`
web02:查看并解壓到對應(yīng)的目錄
[root ~]#ll
總用量 27752
-rw-------. 1 root root 1588 5月 4 19:50 anaconda-ks.cfg
-rw-r--r-- 1 root root 28411082 7月 13 19:14 wordpress-no-uploads.tar.gz
[root ~]#tar xf wordpress-no-uploads.tar.gz -C /app/code/blog/
[root ~]#ll /app/code/blog/
總用量 232
-rw-r--r-- 1 www www 405 2月 6 2020 index.php
-rw-r--r-- 1 www www 19416 5月 26 15:39 license.txt
-rw-r--r-- 1 www www 7348 5月 26 15:39 readme.html
drwxr-xr-x 3 root root 21 6月 5 21:36 up-content
-rw-r--r-- 1 www www 7387 5月 26 15:39 wp-activate.php
drwxr-xr-x 9 www www 4096 5月 26 15:39 wp-admin
-rw-r--r-- 1 www www 351 2月 6 2020 wp-blog-header.php
-rw-r--r-- 1 www www 2323 5月 26 15:39 wp-comments-post.php
-rw-rw-rw- 1 www www 3283 5月 26 14:32 wp-config.php
-rw-r--r-- 1 www www 3328 5月 26 15:39 wp-config-sample.php
drwxr-xr-x 7 www www 99 5月 27 16:59 wp-content
-rw-r--r-- 1 www www 5638 5月 26 15:39 wp-cron.php
drwxr-xr-x 30 www www 12288 5月 26 15:39 wp-includes
-rw-r--r-- 1 www www 2502 11月 27 2022 wp-links-opml.php
-rw-r--r-- 1 www www 3927 5月 26 15:39 wp-load.php
-rw-r--r-- 1 www www 50917 5月 26 15:39 wp-login.php
-rw-r--r-- 1 www www 8525 5月 26 15:39 wp-mail.php
-rw-r--r-- 1 www www 28427 5月 26 15:39 wp-settings.php
-rw-r--r-- 1 www www 34385 5月 26 15:39 wp-signup.php
-rw-r--r-- 1 www www 4885 5月 26 15:39 wp-trackback.php
-rw-r--r-- 1 www www 3246 5月 26 15:39 xmlrpc.php
[root ~]#yum insatll -y nfs-utils
[root ~]#ll /app/code/blog/wp-content/
總用量 12
-rw-r--r-- 1 www www 28 1月 9 2012 index.php
drwxr-xr-x 4 www www 4096 5月 26 15:39 languages
drwxr-xr-x 3 www www 55 5月 29 15:55 plugins
drwxr-xr-x 6 www www 118 5月 29 15:55 themes
drwxr-xr-x 2 www www 6 5月 27 16:58 upgrade
drwxr-xr-x 3 www www 18 5月 26 14:36 uploads[root ~]#ll /app/code/blog/wp-content/uploads/
總用量 0
drwxr-xr-x 3 root root 16 6月 4 20:26 2024
[root ~]#tree /app/code/blog/wp-content/uploads/
/app/code/blog/wp-content/uploads/
└── 2024└── 05└── 109951165166142900.jpg2 directories, 1 file
[root ~]#cd /app/code/blog/wp-content/uploads/
[root /app/code/blog/wp-content/uploads]#ll
總用量 0
drwxr-xr-x 3 root root 16 6月 4 20:26 2024
[root /app/code/blog/wp-content/uploads]#rm -fr 2024/
[root /app/code/blog/wp-content/uploads]#ll
總用量 0
[root /app/code/blog/wp-content/uploads]#cd ..
[root /app/code/blog/wp-content]#ll
總用量 12
-rw-r--r-- 1 www www 28 1月 9 2012 index.php
drwxr-xr-x 4 www www 4096 5月 26 15:39 languages
drwxr-xr-x 3 www www 55 5月 29 15:55 plugins
drwxr-xr-x 6 www www 118 5月 29 15:55 themes
drwxr-xr-x 2 www www 6 5月 27 16:58 upgrade
drwxr-xr-x 2 www www 6 7月 13 19:21 uploads
上面發(fā)現(xiàn)掛載的時(shí)候,發(fā)現(xiàn)不是空的原因是之前所有的文件是從web01上進(jìn)行copy過來的:
[root@web02 ~]#tar xf wordpress-no-uploads.tar.gz -C /app/code/blog/
[root@web02 ~]#ll /app/code/blog/wp-content/uploads/
總用量 0
[root@web02 ~]#ll /app/code/blog/
總用量 232
-rw-r--r-- 1 www www 405 2月 6 2020 index.php
-rw-r--r-- 1 www www 19416 5月 26 15:39 license.txt
-rw-r--r-- 1 www www 7348 5月 26 15:39 readme.html
drwxr-xr-x 3 root root 21 6月 5 21:36 up-content
-rw-r--r-- 1 www www 7387 5月 26 15:39 wp-activate.php
drwxr-xr-x 9 www www 4096 5月 26 15:39 wp-admin
-rw-r--r-- 1 www www 351 2月 6 2020 wp-blog-header.php
-rw-r--r-- 1 www www 2323 5月 26 15:39 wp-comments-post.php
-rw-rw-rw- 1 www www 3283 5月 26 14:32 wp-config.php
-rw-r--r-- 1 www www 3328 5月 26 15:39 wp-config-sample.php
drwxr-xr-x 7 www www 99 5月 27 16:59 wp-content
-rw-r--r-- 1 www www 5638 5月 26 15:39 wp-cron.php
drwxr-xr-x 30 www www 12288 5月 26 15:39 wp-includes
-rw-r--r-- 1 www www 2502 11月 27 2022 wp-links-opml.php
-rw-r--r-- 1 www www 3927 5月 26 15:39 wp-load.php
-rw-r--r-- 1 www www 50917 5月 26 15:39 wp-login.php
-rw-r--r-- 1 www www 8525 5月 26 15:39 wp-mail.php
-rw-r--r-- 1 www www 28427 5月 26 15:39 wp-settings.php
-rw-r--r-- 1 www www 34385 5月 26 15:39 wp-signup.php
-rw-r--r-- 1 www www 4885 5月 26 15:39 wp-trackback.php
-rw-r--r-- 1 www www 3246 5月 26 15:39 xmlrpc.php[root@web02 ~]#systemctl enable nginx php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@web02 ~]#systemctl restart nginx php-fpm
[root@web02 ~]#ps -ef |grep www
apache 2614 2611 0 19:30 ? 00:00:00 php-fpm: pool www
apache 2615 2611 0 19:30 ? 00:00:00 php-fpm: pool www
apache 2616 2611 0 19:30 ? 00:00:00 php-fpm: pool www
apache 2617 2611 0 19:30 ? 00:00:00 php-fpm: pool www
apache 2618 2611 0 19:30 ? 00:00:00 php-fpm: pool www
root 2623 2062 0 19:30 pts/0 00:00:00 grep --color=auto www
web02打開瀏覽器:
發(fā)現(xiàn)如果沒有進(jìn)行掛載,圖片將不會(huì)存在
文字存在的原因是:寫到了數(shù)據(jù)庫;
這時(shí)候可以嘗試將這個(gè)沒有顯示的圖片,換一個(gè)頁面進(jìn)行打開發(fā)現(xiàn):
這里沒有出現(xiàn)的情況是沒有掛載:
mkdir -p /app/code/blog/wp-content/uploads
mount -t /nfs 172.16.1.31:/nfs/wordpress/ /app/code/blog/wp-content/uploads/
記得要永久掛載
這時(shí)候再刷新頁面,圖片才能加載出來(圖片在nfs服務(wù)器存儲上面)
web集群lnmp-wordpress(為例)-存儲架構(gòu)圖
問題:負(fù)載均衡上的nginx用戶需不需要也改成www?還是默認(rèn)就可以?如果不改對內(nèi)容有沒有影響?
不需要改,負(fù)載均衡只需要進(jìn)行做轉(zhuǎn)發(fā)(但是一般還是會(huì)進(jìn)行改掉的:方便批量進(jìn)行管理)
[root ~]#vim /etc/nginx/conf.d/blog.conf
現(xiàn)在進(jìn)行訪問,不能直接判斷是去了web01上,還是web02上(進(jìn)一步判斷:看日志記錄、抓包)
[root ~]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root ~]#systemctl reload nginx
[root ~]#tail -f /var/log/nginx/blog-access.log
[root ~]#tail -f /var/log/nginx/blog-access.log
會(huì)發(fā)現(xiàn)兩邊都會(huì)出現(xiàn)記錄:
會(huì)話保持
(1)概述
-
用戶的請求,登錄的請求,經(jīng)過負(fù)載的均衡后落到后面的web服務(wù)器上,登錄的狀態(tài)、信息也會(huì)記錄在web服務(wù)器上,就會(huì)導(dǎo)致不通的web服務(wù)器上,登錄的狀態(tài)不統(tǒng)一,造成用戶頻繁需要登錄
-
會(huì)話:用戶登錄狀態(tài)、購物車狀態(tài)
-
目標(biāo):如何實(shí)現(xiàn)會(huì)話保持,會(huì)話共享?
(2)cookie vs session
開發(fā)中核心概念:知曉cookie與sesion含義,大致區(qū)別:
技術(shù)點(diǎn) 共同點(diǎn) 區(qū)別 其他 | |||
---|---|---|---|
cookie 存放用戶的信息,登錄信息 存放在客戶端瀏覽器 服務(wù)器給客戶端響應(yīng),進(jìn)行設(shè)置set-cookie,未來再次訪問攜帶者cookie訪問服務(wù)端 | |||
session 存放用戶的信息,登錄信息 存放服務(wù)端(文件,數(shù)據(jù)) 瀏覽器cookie與服務(wù)端的session |
瀏覽器F12查看cookie信息:
(3)會(huì)話保持方案-架構(gòu)設(shè)計(jì)圖
- 純粹cookie
- cookie+session方式 + 統(tǒng)一存放session服務(wù)器(會(huì)話保持服務(wù)器)
- ip_hash方法
- 通過redis實(shí)現(xiàn)phpmyadmin、kodbox會(huì)話共享
部署:phpmyadmin:web頁面版本的數(shù)據(jù)庫管理工具,sql語句,php代碼
部署流程
流程:
- db01服務(wù)器:phpmyadmin用戶,權(quán)限大一些
- web服務(wù)器:部署代碼,傳輸?shù)搅硗庖粋€(gè)web上
- 準(zhǔn)備redis環(huán)境(db01)
- 修改php配置
- 接入負(fù)載均衡,訪問與測試0
a)db準(zhǔn)備phpmyadmin的用戶
grant all on *.* to 'phpmyadmin'@'172.16.1.%' identified by '1';
b)部署代碼
下載官方包:
上傳到linux中:
#查看壓縮包格式
[root ~]#ll phpMyAdmin-5.2.1-all-languages.zip
-rw-r--r-- 1 root root 15096155 7月 16 13:30 phpMyAdmin-5.2.1-all-languages.zip
##解壓到當(dāng)前目錄
unzip phpMyAdmin-5.2.1-all-languages.zip
[root ~]#mkdir -p /app/code/admin
[root ~]#mv phpMyAdmin-5.2.1-all-languages/* /app/code/admin/
瀏覽器訪問admin.wylinlinux.cn出現(xiàn)phpmyadmin報(bào)錯(cuò)
問題:
刷新之后重新訪問網(wǎng)站:
登錄外界數(shù)據(jù)庫發(fā)現(xiàn)登錄失敗:原因是這種登錄方式為本地,所以登錄會(huì)出現(xiàn)下圖錯(cuò)誤:
默認(rèn)連接的是本地的數(shù)據(jù)庫,怎么讓它連接db01服務(wù)器呢?
解決方式:手動(dòng)創(chuàng)建連接數(shù)據(jù)庫的配置文件
cp config.sample.inc.php
grep -n host config.inc.php
30:$cfg['servers']['$i']['host']='172.16.1.51';chown -R www.www /var/lib/php/session
ll -d /var/lib/php/session
以上就成功連接到別的數(shù)據(jù)庫:
[root /app/code]#scp -r admin/ 192.168.65.8:`pwd`
[root /app/code]#cd /etc/nginx/conf.d/
[root /etc/nginx/conf.d]#scp phpmyadmin.wulinlinux.cn.conf 192.168.65.8:`pwd`
root.168.65.8's password:
phpmyadmin.wulinlinux.cn.conf 100% 592 719.3KB/s 00:00
[root ~]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root ~]#systemctl reload nginx
[root ~]#chown -R www.www /var/lib/php/session
檢查語法
[root /etc/nginx/conf.d]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root /etc/nginx/conf.d]#systemctl reload nginx.service
本地解析:
訪問瀏覽器,刷新之后要重新登錄:
突然出現(xiàn)報(bào)錯(cuò):
然后我在訪問的瀏覽器前面加上https,然后登錄沒有報(bào)錯(cuò),但是重新登錄又出現(xiàn)報(bào)錯(cuò)(反復(fù)),
所以這也就模擬成功了myadmin會(huì)話保持的問題
3)部署redis
yum install -y redis修改/etc/redis.confbind 127.0.0.1 172.16.1.51 # 172.16.1.51本地的網(wǎng)卡的ipsystemctl enable --now redissystemctl start redisss -lntup |grep redis
安裝redis,并且編輯redis文件:
檢查語法,過濾端口:
4)lb01服務(wù)器配置文件
[root /etc/nginx/conf.d]#cat phpmyadmin.wulinlinux.cn.confupstream phpmyadmin_pools {server 10.0.0.7:80;server 10.0.0.8:80; }server {listen 80;server_name phpmyadmin.wulinlinux.cn;#error_log#access_loglocation / {proxy_pass http://phpmyadmin_pools;proxy_set_header Host $http_host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
這里模擬為了節(jié)省機(jī)器,不單獨(dú)創(chuàng)建一個(gè)會(huì)話共享的服務(wù)器,用db01這個(gè)服務(wù)器做
5)php配置文件指定會(huì)話存放位置
[root ~]#cd /etc/nginx/conf.d/
[root /etc/nginx/conf.d]#
[root /etc/nginx/conf.d]#cd /etc/php-fpm.d/
[root /etc/php-fpm.d]#ll
總用量 20
-rw-r--r-- 1 root root 17964 6月 5 20:54 www.conf
[root /etc/php-fpm.d]#cp www.conf session.conf
[root /etc/php-fpm.d]#vim session.conf
[root /etc/php-fpm.d]#egrep -v '^$|;' session.conf
創(chuàng)建新的子配置文件:
通知php指定會(huì)話保持位置:redis tcp://172.16.1.51:6379
修改/etc/php-fpm.d/www.conf
php_value[session.save_handler] = redis
php_value[session.save_path] = tcp://172.16.1.51:6379
- session.conf
[session]
user = www
group = www
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
verwritten from PHP call 'ini_set'.
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = tcp://172.16.65.7:6379
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
檢查語法:
[root /etc/php-fpm.d]#systemctl reload php-fpm.service #重啟
過濾端口:
-
修改nginx配置文件 ,將admin轉(zhuǎn)發(fā)到9001端口的php處理
-
檢查語法,重啟
-
最終的測試:
[root /etc/php-fpm.d]#scp session.conf web02:`pwd`
root 's password:
session.conf 100% 766 2.6MB/s 00:00 [root ~]#systemctl reload nginx
[root ~]#chown -R www.www /var/lib/php/session/
[root ~]#systemctl reload php-fpm.service
重新登錄,不會(huì)出現(xiàn)前面反復(fù)登錄的情況:
session信息寫入到了redis(會(huì)話共享服務(wù)器中):
如果刪掉服務(wù)端這里的session,將要重新登錄,重新進(jìn)去創(chuàng)建session信息
以上成功測試完成!!!