求指点
lnmp(准备部署)服务器有很多ip
有很多个站
每个站单独ip
有的站是http
有的是非强制性httos
有的是强制https
lnmp可以做到防窜站吗?
就是用户访问aaa.com/123.html不会跑到bbb/456.html
目前还没部署,求教防止窜站的流程
本帖最后由 清风笑 于 2023-7-8 00:00 编辑
目前用的是某塔,通过站点日志看到几十个手机用户就是访问
http://www.aaa.com/123.html 跳到 https//www.bbb.com/456.html
且找不到解决方案
我在这论坛里搜过且看过几篇文章,就是不大确定和疑问
多ip不需要考虑了,只要解析到正确ip上
运行环境配置好之后,不要急着部署站点,而是先部署空头站点是吗?
还看到军哥一篇文章回复说建议所有站点都配置https且强制301到https
可是我项目并不都是https 也不合适上https ,那怎么办啊?
本来想用pve,每个站点独立安装lnmp,感觉太浪费性能了 清风笑 发表于 2023-7-7 23:55
目前用的是某塔,通过站点日志看到几十个手机用户就是访问
http://www.aaa.com/123.html 跳到 https//www.b ...
别的帖子看到的,我也是多ip,这个靠谱吗?
server name每个都要不一样嘛?要不要设置https?
经过多种方法测试,我发现在多IP和单IP环境下的配置是不一样的,如下:
(1)多IP情况下需分别再添加两个不同IP地址的server:
server
{
listen 198.46.197.201:80 default_server;
server_name "";
return 444;
}
server
{
listen 192.227.162.35:80 default_server;
server_name "";
return 444;
}
(2)单IP情况下仅需修改为以下即可:
listen 80 default_server;
server_name _;
return 444;
NOTE:需特别说明的是,多IP下使用listen *:80 default_server;是无效的,一开始我用的可以,但不知道怎么的后来又失效了,得单独添加才行。
多IP和单IP是一样的,你只需要将要指定的IP解析到你指定的域名就行了
没遇到过 “就是用户访问aaa.com/123.html不会跑到bbb/456.html”,出发你单独设置了rewrite之类给规则
没有开https的站点可以去论坛搜索:空主机头我有发过专门的帖子,如果你没法控制别人在没有开https的站点前面加https就开空主机头
我应该没有说过建议都要强制301到https
licess 发表于 2023-7-9 08:24
多IP和单IP是一样的,你只需要将要指定的IP解析到你指定的域名就行了
没遇到过 “就是用户访问aaa.com/123 ...
谢谢军哥解惑,我没设置rewrite之类规则,就是默认的wordpress伪静态规则,这个先不管了
军哥,空主机头我找到了这篇帖子
https://bbs.vpser.net/forum.php?mod=viewthread&tid=1794&highlight=%E7%A9%BA%E4%B8%BB%E6%9C%BA%E5%A4%B4
总结就是在nginx.conf中加
server {
listen 443 ssl default_server;
server_name _;
ssl_reject_handshake on;
}
多ip有没有必要多个server?就像
server {
listen 192.168.1.1:80 default_server;
listen 192.168.1.1:443 ssl default_server;
server_name _;
ssl_reject_handshake on;
}
server {
listen 192.168.1.2:80 default_server;
listen 192.168.1.2:443 ssl default_server;
server_name _;
ssl_reject_handshake on;
}
...
还有个疑问,关于http跳转https 例如:http://xxx.com跳到https://www.xxx.com
如何避免http://xxx.com 先跳到https://xxx.com 再跳到https://www.xxx.com (包括url参数)
清风笑 发表于 2023-7-9 14:42
谢谢军哥解惑,我没设置rewrite之类规则,就是默认的wordpress伪静态规则,这个先不管了
军哥,空主机头我找 ...
不需要添加ip的listen
这个具体要看你301的代码怎么写的 if ($host ~ '^xxx.com'){
return 301 https://www.xxx.com$request_uri;
}
顶级域名转www就是这样子的
然后还有个http跳到https的
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
} 看了lnmp的配置301教程 , url是:https://lnmp.org/search/301/
是不是就需要加这两个就可以了?
server {
listen 80;
server_name lnmp.org;
return 301 https://www.lnmp.org$request_uri;
}
if ($host = 'lnmp.org') {
return 301 https://www.lnmp.org$request_uri;
} 看的有点懵了:L 我去掉了
if ($host ~ '^xxx.com'){
return 301 https://www.xxx.com$request_uri;
}
结果还是先跳https://xxx.com再跳https://www.xxx.com 清风笑 发表于 2023-7-10 16:18
看了lnmp的配置301教程 , url是:https://lnmp.org/search/301/
是不是就需要加这两个就可以了?
server {
如果全部跳到 https://www.xxx.com 上只需要加第一个,第二个if不用加
修改配置都需要重启nginx
浏览器测试301需要清空所有缓存 licess 发表于 2023-7-11 12:40
如果全部跳到 https://www.xxx.com 上只需要加第一个,第二个if不用加
修改配置都需要重启nginx
浏览器测 ...
谢谢军哥!谢谢 出现了奇怪的事儿
xxx.com, 放在解析商那里做 显示301跳转到 https://www.xxx.com
结果是http://xxx.com可以正常跳到https://www.xxx.com
但是https://xxx.com却请求超时了 xxx.com是顶级域名,下面的规则意思是,判断是不是xxx.com是的话301到https://www.xxx.com$request_ur,别的就是自动跳转到https,比如http://abc.xxx.com/*(包括不带参数的url) 跳转到 https://abc.xxx.com/*
if ($host = 'xxx.com') {
return 301 https://www.xxx.com$request_uri;
}
location / {
return 301 https://$host$request_uri;
}
请教军哥,如何把xxx.com改为通用的,我好放在伪静态的conf里,省的每个站点的conf都配置一次
页:
[1]
2