找回密码
 立即注册
查看: 3416|回复: 7

宝塔里发生蹿站,可以试试这个解决办法

[复制链接]

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
发表于 2023-6-4 09:20:54 来自手机 | 显示全部楼层 |阅读模式
问题描述:# w# r# C/ u. C% N4 f2 }; [: Z
) G3 D  @: B* X+ @( M
在宝塔里,用同一个wordpress开设了A和B两个不同网站,对应不同的数据,同时开启了同样的缓存加速插件。但在浏览器访问时,经常出现在A站上点击打开B站的链接时,却打开到A站首页,并没有正常地打开B站,但B站里文章页面却能正常打开,请问这是怎么回事?具体要如何设置解决才能正常打开A站或B站?
2 I$ c- h5 E0 F- Q1 m: ~8 d
, w) s' V1 _, Y4 V9 u" F解决办法:  J0 F8 H( e+ `! a2 A, S; L& S* Y- Q

: Z0 @7 `1 f& S. ^6 M/ n7 J这个问题可能是由于缓存插件造成的。建议您在宝塔里安装并启用WP Super Cache插件,然后做以下设置:( x" N/ V: S0 a# S6 P# P
* Y# W; x5 B. I" \
1. 在WP Super Cache插件的设置页面中,选择“高级”选项卡。
5 O2 r1 k" u6 {9 ]2 X6 e5 Z. A9 Q7 O: m+ `0 q- z& ?( v
2. 找到“缓存路径”设置栏,将默认的“/wp-content/cache/”修改为“/wp-content/cache/wp-super-cache/”。  K6 Y, M6 n; g' o2 b2 _
) Y- {7 G) u0 E
3. 在同一页面中,找到“缓存超时时间”设置栏,将默认的“3600”修改为“0”。
! h: [0 b1 O# D/ X: j1 K, R: P' n9 p- g; z
4. 保存设置并清除缓存。
& v) {  n' T8 G: s" f
; ]* ]; J/ T1 B; h: E: s' S7 E* d此时,WP Super Cache插件将在每次更新内容前清除缓存,确保您的网站能够正确地显示最新内容。同时,将缓存路径修改为“/wp-content/cache/wp-super-cache/”可以避免不同网站之间的缓存互相影响造成的问题。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 09:24:27 来自手机 | 显示全部楼层
如果不行,可以试试下面这个解决办法:
# h9 H/ e* j4 N) [% V  K* _; S2 v' N2 p7 ~3 y9 ~& }  k- ~, e/ E
这个问题可能是由于缓存插件的设置不正确导致的。为了解决这个问题,您可以按照以下步骤进行操作:, g/ Q, V) F5 ]" `

& e/ }8 y& s: }6 \1. 打开宝塔面板并登录到您的服务器。: Q" I+ Y$ v. }9 D, e- s
2. 进入A站和B站的WordPress管理后台,找到缓存插件的设置页面。
3 a# W2 o6 c, b* o: E  `3. 在缓存插件的设置页面中,确认是否启用了“Object Caching”功能,并将其禁用,因为该功能可能会导致缓存互相干扰。
: X, a$ z9 k) R4 h" \* e2 A( H4. 如果使用的是WP Super Cache插件,则需要在高级设置页面中的“缓存重定向”部分启用“清除所有缓存”,以确保缓存被正确清除。: W  ]! V* c; K4 ~- E2 Q
5. 确认在A站和B站的WordPress管理后台中,每个站点的“站点地址”和“主页地址”都正确设置为各自的网址。
! s" ~" \5 _: n+ O6. 最后,清除浏览器缓存并重新加载网页,以确保您所做的更改已经生效。$ A) C( J  j, `3 G/ ^- g
" O, Y" W+ t2 X$ `! o0 j3 }
通过以上步骤的设置和操作,应该可以解决A站和B站之间的缓存干扰问题。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 09:25:05 来自手机 | 显示全部楼层
在微信上打开时还是存在上述问题,在微信上如何清除浏览器的缓存?8 q: d2 v9 o& j

6 ?( i) y7 }0 A8 h( b5 ?微信内置了一个浏览器,称为“应用号浏览器”,该浏览器可以访问网站和应用程序。要清除微信内置浏览器的缓存,您可以按照以下步骤进行操作:  x- d% r8 C; O$ @- L/ Q
6 y4 w) Z( o& m. K5 D: I6 y0 h9 e
1. 打开微信应用程序并进入“我”界面。
, f$ d. O8 _4 h, N) Y1 W- D! Q0 }2. 点击“设置”图标,并向下滚动到找到“清除缓存”选项。
  V' A$ T! R% b: k3. 点击“清除缓存”按钮,以清除微信浏览器缓存。) |2 ~6 H" n' _3 D6 ?! p

! ]0 J- ?/ j% [( U& A2 i& x! f请注意,这将清除微信浏览器中所有网站的缓存,而不仅仅是特定网站或应用程序的缓存。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 09:27:19 来自手机 | 显示全部楼层
但其他访客不知这个解决办法的时候,如何让他们在访问上述两个网站时,能强制且正常地分别访问各自的链接?% [* ]) A3 X0 v3 R. p5 r
8 N! e$ m% h# {# @/ N
您可以尝试在A站和B站的WordPress管理后台中更改“网站地址”和“主页地址”为完整的URL地址,包括http或https。例如,如果A站的网址为http://example.com,则应将其设置为http://example.com,而不是只填写example.com。
( M( P* b$ Z1 Y4 E, \9 q" _& s6 n" Z; W4 h7 Q- J
同时,确保在您的服务器上正确设置了虚拟主机和DNS记录,以确保每个网站都有唯一的域名或子域名。这样,即使访客在微信内置浏览器中使用相同的IP地址访问这两个网站,也可以通过域名区分并强制访问各自的链接。+ P8 m1 w# K9 j6 m' s! ~, H
2 Y+ Y1 v+ z# h1 _3 Y% {
如果以上方法仍然无法解决问题,您可能需要使用反向代理服务来解决此问题。反向代理服务可以根据访问的URL路径将请求路由到正确的网站。
3 {, D$ u9 b( L6 G
4 w0 d+ }: N3 g; D) F0 d2 C请注意,这需要一些技术知识和配置,并且可能需要您的服务器支持反向代理。如果您没有相关经验,建议咨询专业的网络工程师或系统管理员来协助解决此问题。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 09:30:40 来自手机 | 显示全部楼层
请详细介绍一下解决上述问题的反向代理服务具体要如何实现和实现的每一个路径和步骤。
5 c$ @  P( d0 m! I' W! G/ ~: R) E4 v& {9 v* M7 q; T1 y
反向代理服务可以在服务器端配置,将访问者的请求转发至不同的Web服务器,从而实现访问不同网站的效果。下面是具体步骤:
% o; R4 z) ]9 _
# u5 y7 z  t: K( f1. 在您的服务器上安装反向代理软件,例如Nginx、Apache等。这里以Nginx为例。
0 p: b5 q/ p6 e9 M" r1 U
) y$ Z- X2 p. ?: w! E" s2. 配置Nginx,打开Nginx配置文件,并添加以下内容:- M: m" O" Q4 o1 W8 w9 J( O8 [

& k2 x6 {5 I: w; f* @& |   ```
. E0 h" I6 N! U- Q1 B7 q. h   server {. W: K' O( b) k& w* B
       listen 80;
6 I3 g/ j- _( }/ h- w; ?       server_name example.com;9 G, H3 {6 Z  z
       location / {
5 S9 {- I1 n& B8 Z           proxy_pass http://your-ip-address:port-number/;
& c0 v3 S4 t& S           proxy_set_header Host $host;) `9 W4 u! l, N, s6 I& r
           proxy_set_header X-Real-IP $remote_addr;# e& d! y. g( v! i# @2 ?4 M. G
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
6 U: h) |7 ]; q# q0 h, X       }4 \% w( J1 y' G7 y4 W# H. v
   }
( T! A; e4 O1 f- G) X   ```
  N3 l9 }- W7 f" a' c  `3 e% Z
2 Y% \! X! m" p   其中,example.com指代您的域名或子域名;your-ip-address指代A站或B站的IP地址;port-number指代A站或B站的端口号(默认为80)。5 f4 u! q7 f) {( G3 v

8 B: c4 r( ], g$ @2 R9 `" m, A1 C3. 保存并关闭文件,重启Nginx服务。
& @5 T( \* v% i- O; V+ P+ R7 k8 J) K3 d. T7 N4 l" \
4. 确保您的A站和B站都已经启动,并且监听在其各自的端口上。
2 U' L  G, N) f) r6 C3 h
! S( D+ {+ r3 z+ J: {/ Y; i5. 向您的DNS提供商添加A站和B站的DNS记录,将它们映射到您的服务器IP地址。
. q) B% K3 c  K) @# ?! l% ^  P" n' W6 A. o  }( Q. m; Z( d$ p
6. 在浏览器中输入A站和B站的完整URL地址,例如http://example.com:8001/ 和http://example.com:8002/。- ?1 k2 O/ n9 ]9 ?6 h2 ]
' W1 V; f/ j! J+ l- [
7. 这样,在访问A站和B站时,Nginx会根据URL路径将请求路由到正确的Web服务器上,从而实现访问不同网站的效果。; N0 {2 u# Y: |2 @/ h- E# `

) c2 x/ M5 {: D; u请注意,这需要一些技术知识和配置,并且可能需要您的服务器支持反向代理。如果您没有相关经验,建议咨询专业的网络工程师或系统管理员来协助解决此问题。' O# q% D2 W/ Z; o  k3 b

) ?( H% p9 d& k  }2 }8 r4 @另外,为了实现HTTPS加密传输,还需要在Nginx中配置SSL证书并启用SSL/TLS协议。这也需要一些额外的配置和操作。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 09:39:10 来自手机 | 显示全部楼层
上述第4,第5步还是不明白,请更详细地具体地说明一下
2 g2 V! E% A- ]* J4 H4 i2 x. w+ _% A2 G- [3 B4 ?
第4步:确保A站和B站已经启动,并监听在各自的端口上" ]7 b+ c% ?0 r+ B0 K4 e
5 r8 r( K5 C0 W& x( n
在反向代理服务中,您需要将访问者的请求路由到不同的Web服务器上。因此,在使用反向代理服务之前,您需要确保每个Web服务器都已经启动,并且正在监听在指定的端口上。
* }. C4 O, _. D, a7 P2 f
" `8 o  m3 G$ q例如,如果A站的Web服务器是Apache,那么您需要确保Apache已经启动,并且正在监听在指定的端口上。默认情况下,Apache监听在80端口。如果您需要使用其他端口,可以通过修改配置文件来更改端口号。类似地,如果B站的Web服务器是Nginx,您也需要确保Nginx已经启动,并且正在监听在指定的端口上。* D& o8 y9 t1 O
8 ~! r* ^! G- A! w
第5步:添加DNS记录将A站和B站映射到您的服务器IP地址- P# V: t8 B- P7 C& {( \) O

- N2 ]# X5 M& ^  P0 @- T* @4 K为了使访问者能够通过域名或子域名访问A站和B站,您需要将它们映射到您的服务器IP地址。这可以通过添加DNS记录来实现。具体而言,您需要执行以下操作:0 ~8 v3 \; K9 E8 Y
: U( |* y& ~; c5 s* [! j- Z1 {& ^
1. 登录您的域名注册商或DNS提供商的管理界面。
. B. Y6 o+ S" F. w* X1 N5 C: ?
2. 找到“DNS管理”或“域名解析”等相关选项。/ j" e2 [$ ^- U2 [% C

: G2 q5 s. |; ?1 o3. 添加两个A记录,将A站和B站分别映射到您的服务器IP地址。例如,如果您的服务器IP地址是192.168.0.100,那么您可以添加如下两个记录:4 m9 v/ d/ t9 ^& g
  Y; g' t) ]$ Q" q, |
   ```
  h, }/ S3 G/ D' U   A记录: 主机名:a站域名  IP地址:192.168.0.100% B8 w2 w# J( T* P% X2 F# p
   A记录: 主机名:b站域名  IP地址:192.168.0.100& e: J9 W  j+ V' z
   ```  E8 `8 ~: o) v. P

* F% Q8 g* g- U' \" T# p4. 等待DNS记录生效。这通常需要几分钟到一小时不等。
8 V' n  u8 @% f1 A" a5 e! J8 D: V: l5 q( f1 P! Z/ `# u# Z$ o" ~* P
请注意,每个DNS提供商的管理界面可能不同,因此具体操作可能会有所不同。如果您对如何添加DNS记录有任何疑问,建议参考DNS提供商的文档或联系其客户支持部门。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 17:18:34 来自手机 | 显示全部楼层
现在A,B两个网站都在同一个服务器上,都是采用同样的nginx服务器,都是采用默认的80端口,要解决上述问题,具体要如何实现?
, }/ }- n$ F! Z! ^
/ _1 B/ J4 l, E, h% v2 n如果A站和B站都在同一个服务器上,且采用同样的Nginx服务器并监听在默认的80端口,您可以通过以下步骤来解决访问混乱的问题:: U: E: B; s3 d0 {5 v, a

) `+ ^  E  H9 }1. 在Nginx配置文件中,添加两个虚拟主机,并将其分别与A站和B站关联。具体而言,您需要执行以下操作:
# r- o9 R0 M, T( Y) y- M+ |0 L5 v; z6 p1 Z8 a9 G
   ```: N7 E9 Z  c: U2 a+ U
   server {4 y- ~" [! v! }6 I3 |# s1 G
       listen 80;0 b4 c6 P2 q$ |2 P
       server_name a.example.com;, m; G9 v3 ]  Z+ l; L
       root /var/www/a;
! W* R2 T8 b8 ]2 O7 _+ _       index index.html;
# C& Z  }. K9 R$ J: d0 \7 p" L- u   }
$ }# Y* X# V/ e; o' r+ ^" m7 o2 X7 [) G: _8 M
   server {
9 q( o. H4 Z# c) J1 T) `) o$ i9 w       listen 80;) L8 P" \* b7 y* l
       server_name b.example.com;, C7 A0 E' Y) F* L- t" ^4 X
       root /var/www/b;
; ?5 O; T, W$ I% z  X3 r       index index.html;+ |2 {3 l3 @% r" t
   }$ U$ t9 F- ~' b" L$ e
   ```
( J3 \/ {2 R' ^* _
$ P2 z2 b5 F& ]# D& ~   其中a.example.com和b.example.com是A站和B站的域名或子域名;/var/www/a和/var/www/b是存储A站和B站网页文件的路径。
+ F  v( m2 n+ X0 H
8 t5 v5 t5 ^% J( M2. 保存并关闭文件,重启Nginx服务。
- r' g, I+ R' x9 i. @, R% U7 k1 V, h* O9 ^# M
3. 确保您的DNS记录正确地映射到您的服务器IP地址。例如,如果您的服务器IP地址是192.168.0.100,并且a.example.com和b.example.com分别对应A站和B站,则您可以添加如下两个记录:3 E- g) R7 [. h& n# k2 M
. j& h  I4 ]- @! L0 O: Q
   ```4 Z+ @6 v3 ~- M3 v9 O" b
   A记录: 主机名:a站域名  IP地址:192.168.0.100
+ _6 b9 ^' G/ }" A. r   A记录: 主机名:b站域名  IP地址:192.168.0.100
- s" m0 n" q& K* U   ```2 X* f$ T# H0 t0 H5 F' R% H

$ y5 w  K6 `0 C4. 在浏览器中输入A站和B站的完整URL地址,例如http://a.example.com/和http://b.example.com/。
5 a9 F$ Z- y! m$ ?, x* M% `# M# N1 Q7 Q: ]$ ~8 G1 A
5. 这样,在访问A站和B站时,Nginx会根据域名将请求路由到正确的虚拟主机上,从而实现访问不同网站的效果。
6 ^1 [8 i# m5 ]+ H+ W" T' z7 ?& H/ }( T$ O: m, A3 k4 f9 O, G) t8 H
请注意,这里假设您已经在服务器上配置好了A站和B站,并且它们存储在/var/www/a和/var/www/b目录中,并且仅使用静态HTML文件。如果您使用其他类型的Web应用程序(例如PHP、Python等),则需要相应地修改Nginx配置文件。
回复

使用道具 举报

408

主题

596

回帖

4038

积分

管理员

积分
4038
QQ
 楼主| 发表于 2023-6-4 17:19:03 来自手机 | 显示全部楼层
但还是经常出现点击B站链接时,打开的却是A站链接,还是没有解决,要怎么办?
7 e9 I! Y$ l( W8 U* N  _$ ^$ a
& L, r+ h3 T; a& k! n0 s% i如果您在执行上述步骤后仍然出现了点击B站链接时打开A站的问题,可能是由于浏览器缓存或代理服务器等因素引起的。您可以尝试以下方法:
( l& X9 D" _( a9 c6 N
- u' Z$ G0 z* t$ [5 W9 B1. 清除浏览器缓存并重新加载页面。有时候,浏览器会缓存旧的DNS解析结果或响应内容,导致出现访问混乱的问题。清除浏览器缓存并重新加载页面通常可以解决此类问题。
' u6 q5 G6 `, V% B6 [
& w# v5 a. |8 [* p. C2. 检查代理服务器设置。如果您正在使用代理服务器进行访问,则可能是代理服务器配置不正确导致出现访问混乱的问题。您可以尝试关闭代理服务器,或者检查代理服务器设置是否正确。" w: }4 V( k* h! ]  L# [$ F
( [* a6 b: m) A9 J5 @
3. 检查Nginx配置文件。请确保您已经正确地配置了Nginx,并将虚拟主机与A站和B站关联。特别注意Nginx配置文件中server_name指令的设置,确保每个虚拟主机都有唯一的域名或子域名。( k2 l, Z/ A0 E2 m

/ I& Z1 N! p; K8 d2 I; H0 s' Q4. 检查DNS记录。请确保DNS记录已正确映射到您的服务器IP地址,并且没有重复或错误的记录。* D9 Y9 @& |/ \# d1 |1 _

% P" x! m$ }1 X& g: D5. 检查网络连接。如果您使用的是动态IP地址,并且网络连接不稳定,则可能会出现访问混乱的问题。您可以尝试重新启动路由器或调整网络连接设置,以确保稳定的网络连接。* q# g0 d3 V6 J3 m7 n. I  H
5 Z; Y- {1 g7 @+ @' Y4 p7 s1 R) A. Y
如果您尝试了以上方法仍然无法解决问题,请考虑咨询专业的网络工程师或系统管理员,以协助解决此问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|通达创业无忧交流社区 ( 粤ICP备2023021749号|粤公网安备 44030402006137号 )

GMT+8, 2026-4-11 17:21 , Processed in 0.509626 second(s), 21 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表