清风笑 发表于 2023-7-7 23:50:50

求指点

lnmp(准备部署)
服务器有很多ip


有很多个站
每个站单独ip
有的站是http
有的是非强制性httos
有的是强制https

lnmp可以做到防窜站吗?
就是用户访问aaa.com/123.html不会跑到bbb/456.html

目前还没部署,求教防止窜站的流程





清风笑 发表于 2023-7-7 23:55:57

本帖最后由 清风笑 于 2023-7-8 00:00 编辑

目前用的是某塔,通过站点日志看到几十个手机用户就是访问
http://www.aaa.com/123.html 跳到 https//www.bbb.com/456.html
且找不到解决方案


我在这论坛里搜过且看过几篇文章,就是不大确定和疑问
多ip不需要考虑了,只要解析到正确ip上
运行环境配置好之后,不要急着部署站点,而是先部署空头站点是吗?
还看到军哥一篇文章回复说建议所有站点都配置https且强制301到https
可是我项目并不都是https 也不合适上https ,那怎么办啊?

清风笑 发表于 2023-7-8 00:16:57

本来想用pve,每个站点独立安装lnmp,感觉太浪费性能了

清风笑 发表于 2023-7-8 00:38:14

清风笑 发表于 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;是无效的,一开始我用的可以,但不知道怎么的后来又失效了,得单独添加才行。

licess 发表于 2023-7-9 08:24:50

多IP和单IP是一样的,你只需要将要指定的IP解析到你指定的域名就行了

没遇到过 “就是用户访问aaa.com/123.html不会跑到bbb/456.html”,出发你单独设置了rewrite之类给规则

没有开https的站点可以去论坛搜索:空主机头我有发过专门的帖子,如果你没法控制别人在没有开https的站点前面加https就开空主机头

我应该没有说过建议都要强制301到https

清风笑 发表于 2023-7-9 14:42:23

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参数)

licess 发表于 2023-7-10 15:31:51

清风笑 发表于 2023-7-9 14:42
谢谢军哥解惑,我没设置rewrite之类规则,就是默认的wordpress伪静态规则,这个先不管了
军哥,空主机头我找 ...

不需要添加ip的listen

这个具体要看你301的代码怎么写的

清风笑 发表于 2023-7-10 16:07:19

if ($host ~ '^xxx.com'){
            return 301 https://www.xxx.com$request_uri;
}
顶级域名转www就是这样子的

然后还有个http跳到https的
if ($server_port !~ 443){
      rewrite ^(/.*)$ https://$host$1 permanent;
    }

清风笑 发表于 2023-7-10 16:18:34

看了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;
}

清风笑 发表于 2023-7-10 16:23:09

看的有点懵了:L

清风笑 发表于 2023-7-10 17:06:36

我去掉了
if ($host ~ '^xxx.com'){
            return 301 https://www.xxx.com$request_uri;
}
结果还是先跳https://xxx.com再跳https://www.xxx.com

licess 发表于 2023-7-11 12:40:17

清风笑 发表于 2023-7-10 16:18
看了lnmp的配置301教程 , url是:https://lnmp.org/search/301/
是不是就需要加这两个就可以了?
server {


如果全部跳到 https://www.xxx.com 上只需要加第一个,第二个if不用加
修改配置都需要重启nginx
浏览器测试301需要清空所有缓存

清风笑 发表于 2023-7-11 14:01:12

licess 发表于 2023-7-11 12:40
如果全部跳到 https://www.xxx.com 上只需要加第一个,第二个if不用加
修改配置都需要重启nginx
浏览器测 ...

谢谢军哥!谢谢

清风笑 发表于 2023-8-10 03:18:41

出现了奇怪的事儿

xxx.com, 放在解析商那里做 显示301跳转到 https://www.xxx.com


结果是http://xxx.com可以正常跳到https://www.xxx.com
但是https://xxx.com却请求超时了

清风笑 发表于 2023-8-14 05:02:53

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
查看完整版本: 求指点