全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 1232|回复: 25
打印 上一主题 下一主题

[美国VPS] Nginx设置反代,WP首页一直301 (已解决)

[复制链接]
跳转到指定楼层
1#
发表于 2024-10-18 17:17:20 来自手机 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 ensky 于 2024-10-19 21:25 编辑

有没有大佬遇到过这样的问题:

我有两台VPS,前端的VPS作为Nginx反代服务器,后端的一台正常部署网站。

后端的这台也是使用Nginx部署的网站,使用Wordpress.

反代设置成功后,访问都正常。直到把Wordpress 后台,阅读这个地方设置为静态网页。再访问首页就一直301,但是访问www.domain.com/home/就很正常。

如果Wordpress 后台设置为:latest posts 。那么访问www.domain.com就不会301了,就是正常的。

这是啥原因啊?尝试了很多方法也没有解决。
26#
 楼主| 发表于 2024-10-19 21:24:50 | 只看该作者
Microcharon 发表于 2024-10-19 20:27
host问题吧:https://www.microcharon.com/tech/165.html

谢谢大佬,这个思路和我原来的思路不一样,我之前使用的是前后端不同的域名。

楼上刚才给的思路我配置成功了,和您分享的这个思路类似,前后端是同一个域名。
25#
发表于 2024-10-19 20:27:21 来自手机 | 只看该作者
host问题吧:https://www.microcharon.com/tech/165.html
24#
 楼主| 发表于 2024-10-19 20:22:39 | 只看该作者
无名渔夫 发表于 2024-10-19 14:23
这个问题我也遇到过,我的解决方法如下:

1、首先在域名商那里,把域名解析到前端服务器的IP

大佬牛逼,成功了,哈哈哈。私信我一个您的微信收款码,怎么着也得送瓶大可乐

就是第6步中的/etc/cloud/templates/hosts.debian.tmp文件没有找到。我的VPS上只有hosts, hosts.allow, hosts.deny, 就是没收到这个hosts.debian.tmp

我的系统是Debian GNU/Linux 11 x86_64

大佬这个思路太好了,域名解析到前端服务器,然后前端Nginx在做解析的时候,优先解析本地的hosts文件,然后指向后端IP,进而转发到后端。后端使用的域名和前端一样,彻底解决了前后端域名不一致的问题。牛啊
23#
发表于 2024-10-19 14:23:59 | 只看该作者
这个问题我也遇到过,我的解决方法如下:

1、首先在域名商那里,把域名解析到前端服务器的IP
2、打开前端的宝塔面板,点击添加新站点,注意,创建新站点的时候,根目录要和你后端的网站根目录保持一致,前端的数据库和PHP可都不选
3、创建好以后,在新添加的站点申请证书,申请成功后,开启强制https,然后复制这个证书,粘贴到后端网站的SSL上,同样开启强制https
4、在你的后端宝塔的网站设置中,检查网站绑定的域名是否和前端绑定的域名一样,切记,后端网站的域名绑定不要用IP绑定,要填和前端一样的域名,
5、修改前端服务器的hosts文件(/etc/hosts),在最后面添加一行dns记录:
后端服务器IP地址 域名.com
例:123.123.123.123 **.com

6、/etc/hosts的dns添加之后,打开hosts.debian.tmp文件,文件位置在:/etc/cloud/templates/hosts.debian.tmp
同样在该文件最后面添加一行dns记录:后端服务器IP地址 域名.com
Ps:某些厂商的服务器重启之后,/etc/hosts文件会自动还原为默认配置,导致修改的hosts配置失效,所以还需要在/etc/cloud/templates/hosts.debian.tmp文件内再添加一条相同的dns记录
另外,/etc/cloud/templates/hosts.debian.tmp只有debian系统才有,如果你是unbanto或centos,请自行查找对应系统的hosts修改重启失效解决方法

7、在前端的面板中,创建反向代理,设置如下:
目标URL:https://example.com
发送域名:example.com
目标URL必须带https,不能是http
内容替换默认不填写

8、打开后端宝塔面板,在网站的伪静态设置一栏中,选择wordpress伪静态,然后保存

9、重启前端和后端服务器,反向代理就应该能正常生效了

10、进入wordpress仪表盘后台,在“设置”--“固定连接”,选择自定义结构:/%post_id%.html
22#
 楼主| 发表于 2024-10-19 12:01:11 | 只看该作者
Jianrry 发表于 2024-10-19 11:23
思路已经告诉你了,剩下的可以问 chatgpt ,chatgpt 完全可以搞定。

我前几天接了一个200¥的单子,交付 ...

麻烦大佬了,谢谢
21#
发表于 2024-10-19 11:23:19 | 只看该作者
ensky 发表于 2024-10-19 01:28
不会改,怎么问一下GPT,给一个正确的呢?

思路已经告诉你了,剩下的可以问 chatgpt ,chatgpt 完全可以搞定。

我前几天接了一个200¥的单子,交付时联系不上对方,现在一分钱都没收到。

这一段时间我心情不好,没有心情回答问题,也没有心情接单。
20#
 楼主| 发表于 2024-10-19 01:28:09 | 只看该作者
Jianrry 发表于 2024-10-19 00:08
你自己修改一下伪静态的规则,不要使用宝塔默认的伪静态规则。

不会改,怎么问一下GPT,给一个正确的呢?
19#
 楼主| 发表于 2024-10-19 01:20:08 | 只看该作者
skysf 发表于 2024-10-19 00:20
那我理解错你意思了。
看看反代的机器上,填的wordpress地址末尾有没有/,有的话去掉。填的是不是https
...


末尾的/去掉了。
填的是https

我之前配置的是proxy_set_header Host  www.hou-duan.com; 这样就会导致访问www.qian-duan.com一直301.

我改为您说的这个proxy_set_header Host $host : $server_port; ,访问 www.qian-duan.com的时候,没有301了,直接显示了反代的静态网站,没有显示后端的WP网站。
18#
发表于 2024-10-19 00:20:47 | 只看该作者
ensky 发表于 2024-10-18 22:42
那咋改呢?我现在用的宝塔面板,面板中就有一个伪静态规则的设置。如果不用Nginx反代的模式,直接www.hou ...


那我理解错你意思了。
看看反代的机器上,填的wordpress地址末尾有没有/,有的话去掉。填的是不是https
用的是不是标准端口?反代机器上加上
  1. proxy_set_header Host $host:$server_port;
复制代码

重启nginx后用无痕窗口打开看看行不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-21 22:47 , Processed in 0.063996 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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