伪装域名能不能做判断转发?



  • 按《v2ray带伪装一键脚本》里,注意事项的第一条来看,只要绑定在IP上的域名都会被转发到这个443的域名上去是吧?包括80端口的。有没有可能根据域名来做条件转发?比如同样访问80端口的域名,A.XXX.COM转发到10.0.0.1:111,B.XXX.COM转发到10.0.0.2:222,当访问这个伪装网址,就发送到443去。之前一直用haproxy做反向转发,nginx没用过,这两天刚研究这个v2ray,虽然大大提供了伪装一键脚本,但如果分设转发的话,等于这台主机只能给一个站点用了。



  • 并不是的

    网站提供的一键脚本,原则上只会转发指定域名的流量,其他域名如果有配置文件,就会按照配置的走。

    很多人原来有网站,用了一键脚本后访问出问题,基本上是因为之前设置的监听有问题,或者配置没有生效(本站一键脚本会备份原来的nginx.conf文件并重写内容)



  • @hijk 刚才尝试新建了个.conf文件,把一个二级测试域名做了监听,可能设置有问题,提示502了。我现在的需求是,这台VPS做代理用的,作用一是翻墙,已用一键脚本做好了,之前iOS不能用fb的app问题也解决了;另一个作用是,我想绑定个域名,因为没有做备案,也不想做~ 我以前是用haproxy,转发到另一台服务器的非80端口上去实现的。下午查了很多资料,有提到过stream模块能做tcp转发,不过要1.9版本,刚才出现502页面的时候,底部提示是nginx/1.14.1。
    请问我这个需求可以怎么实现呢?



  • @凉凉 直接做转发可以啊,网站上不就有转发的教程吗?



  • @hijk 谢谢!想起来了,好像之前是在这里看到过这么一篇教程,我去搜一下。



  • 按照那个操作,转发肯定没问题的



  • @hijk 你好,按照那个教程,我把nginx.conf添加了那段内容,跟着其它网站的资料,建了一个vhost.conf文件,放在/etc/nginx/conf.d/下,用命令nginx -t虽然没报错,但也没有成功访问,还是自动转到了443那个域名去了。我觉得可能是这个配置文件里的问题,能帮我看下吗?我想访问这两个域名的时候,能转发到另一台192.168.1.200的6000端口去。
    server {
    listen 80;
    server_name XXX.com www.XXX.com;
    root /usr/share/nginx/html;
    # Load configuration files for the default server block.

    location / {
        index  index.php index.html index.htm;
    location ~* \.php$ {
    
        fastcgi_index   index.php;
        fastcgi_pass    192.168.1.200:6000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
    error_page 404 /404.html;
        location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
    

    }
    }



  • @凉凉 你文件里这么写的?php的那个段怎么会在/里面?



  • @hijk 网站是php的,我查了下有人提到php会不被解析,就这么写了



  • servername和伪装的一样吗?



  • @hijk 两台servername是不一样的。情况是这样,我用一个二级域名连到墙外vps做了v2ray翻墙用,现在还想再绑定个域名,通过这台vps回到墙内的一台服务器做网站。



  • 看起来通过80端口是没问题的,除非配置没有被nginx加载



  • @hijk 那个带伪装的一键脚本里,默认只开了443端口,我把80也打开了。



  • 伪装的脚本里开了80啊



  • @hijk 神奇了啊,我用list all查了下只有443嘛,然后就自己手动加了个



  • 不可能啊,除非你用的别人的脚本

    如果没有80,那你另外的域名更不可能转到443端口了



  • @hijk 确实用你的这个脚本,要么我明天重装了看看。对了,说到重装,是不是我在vps上安装过后,如果做个snapshot,有问题的时候,恢复后会无法正常使用了?



  • 要看你的snapshot啥时候做的了



  • @hijk 明白了,果然今天恢复昨天的会上不了墙



  • @hijk 我今天把一键伪装重新装了下,然后登陆主域名居然不会跳转到伪装域名去了,提示“Welcome to nginx on Red Hat Enterprise Linux!”这个信息了。不过按以下做转发流量设置

    stream {
    server {
    listen 端口号; # 端口号改成1-65535中的任意一个数字,例如8081
    proxy_pass 境外ip:境外端口号; # 用境外ip和端口号替换
    }
    }

    nginx -t都ok,重启就出错:

    [root@20200307 ~]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@20200307 ~]# systemctl restart nginx
    Job for nginx.service failed because the control process exited with error code.
    See "systemctl status nginx.service" and "journalctl -xe" for details.


登录后回复