共享 ip 的 vps 有设置反向代理的权限吗?

2018-02-14 22:34:58 +08:00
 taibin

手上有一共享 ip 的 vps,现在需在上面建站和绑定域名,因为外网 80 端口是公用,主机商给了我们自己在后台映射外网端口的功能,比如我将内网 80 端口映射到外网 22222 端口,这时我通过 ht tp:// 我的域名。com:22222 就可以访问我的网站,现在我想隐藏后面的一长串端口号,所以就用了 nginx 的反向代理,但配置了总是无效,是不是我没有监听外网 ip 80 端口的权限啊(是要外网 ip 服务器权限的主机商才能配置这个反向代理转发到我的 vps 吗)?
请高手指点!

880 次点击
所在节点    VPS
33 条回复
msg7086
2018-02-15 00:06:53 +08:00
当然。
而且这和你开 nginx 反向代理毫无关系,是主机商来开的。
taibin
2018-02-15 00:29:46 +08:00
@msg7086 那我这种共享 ip 的机子,又没有主机商的权限,我建站需要隐藏后面那个端口号有什么方法没?
msg7086
2018-02-15 00:57:55 +08:00
没有。建站需要公网 IP 的控制权。
taibin
2018-02-15 01:17:55 +08:00
@msg7086 请问现在那些主流的国内外 vps,比如 digitalocean,linode,vaturl,搬瓦工之类的,他们比较入门的那几款应该也是共享 ip 吧,这些都没办法建站吗?只能另外买独立 ip 吗?
msg7086
2018-02-15 01:19:00 +08:00
没见过这些 VPS 卖共享 IP 的。
taibin
2018-02-15 01:25:56 +08:00
@msg7086 上面这几家很便宜的像 2.5$或者 5$的 vps 都不是共享 ip 吗? 都是独立的吗?我新了解 vps 不久,找了很多资料还是不得其解,所以问的有点多了,先谢谢你!
msg7086
2018-02-15 01:35:15 +08:00
VPS 只要不特别说明,都是独立 IP。
只有特别说明共享 IP,或者 NAT VPS 的才没有独立 IP。

$2.5 也不算是特别便宜。以前打折时候买的 Virmach 家一年 10 刀甚至 5 刀的,也有独立 IP。没有的是少数。
taibin
2018-02-15 01:50:42 +08:00
@msg7086 原来如此,因为我之前买时还不知 nat 的意思,也不知它不能直接绑域名,我刚在上面几家网站上看介绍也没提 ip 到底是 nat 还是独立,原来默认是独立的。至于你说的 virmach,你用了多久了,速度和稳定性如何,现在还有活动不?
msg7086
2018-02-15 01:55:36 +08:00
我买机器几乎不考虑中国的连接性,对你可能没有参考价值。
而且 Virmach 我自己也没怎么用,就是黑 5 或者圣诞打折的时候随便买的。
如果不考虑中国连接性的话,可以看看这个投票 https://www.lowendtalk.com/discussion/134743。

我重要的项目都是另外买的独立服务器,然后和中国对接的反代再另外挑选。
taibin
2018-02-15 02:17:01 +08:00
@msg7086 你反代是用国外机配 nginx 转发分配给中国机吗?(可能用词不专业,但大致了解反代原理)
msg7086
2018-02-15 02:43:39 +08:00
一般是在日本和香港买性能差但是网络好的机器,配置 nginx 做转发。
然后在美国或者欧洲买价格便宜性能好的杜甫跑程序本体。
taibin
2018-02-15 03:05:45 +08:00
@msg7086 你的用户是面向国内吗?我以为反代只是隐藏本体真实地址,但最终网络和性能速度还是受本体影响,不是这样的吗?
taibin
2018-02-15 03:07:27 +08:00
@msg7086 要不然的话,你本体放在美欧也很影响速度啊,如果面向国内的话
msg7086
2018-02-15 03:35:49 +08:00
中国以外的全球网络速度都不是很差,日本香港欧洲北美互联速度都飞快的。
特别是本体和日本之间的网络性能通常可以忽略不计。
另外反代也可以适当缓存静态资源,实际体验比直连好得多。
taibin
2018-02-16 01:34:22 +08:00
@msg7086 我分别买了 virmach 和另外一家的,都是独立 ip 了,但我反向代理只有我之前那个 nat 的 vps 可以正常显示,其他的 vps 或虚拟主机上的站都无法正常访问:

代理阿里云上的虚拟机网站,直接显示阿里云提示未备案不能访问的页面(实际上我是备案了并且通过阿里云的域名能正常访问的,不知道是不是阿里云限制了其他域名的反向代理所以才拦截);
代理另一家国外的虚拟主机,弹出的是错误页面,没写 404 但应该是 cpanel 管理面板的 404,不知是不是这个服务器也拦截了其他域名反向代理。然后反向代理 virmach 上的站也是打不开忘了是 404 还是 502,503,还有反代百度或者其他的别人的网站也没有一个成功,请问我这是哪里设置不对呢,或者现在
taibin
2018-02-16 01:35:55 +08:00
或者现在屏蔽反代的技术成熟 所以很多服务器商都屏蔽反代了?
msg7086
2018-02-16 04:37:45 +08:00
我觉得是你的代理配置有问题。
你有给 nginx proxy 设置 host 头吗?

resolver 8.8.4.4;
proxy_pass http://$host;
proxy_set_header Host $host;
taibin
2018-02-16 21:15:15 +08:00
@msg7086
我就是担心这些细节的地方写错,所以是在宝塔控制面板后台添加的,他是一个网站有一个单独的 server 配置文件,比如我要通过我的子域名 vir.zyclub.top 访问 Baidu,在设置里面有目标 url 和发送域名两项,发送域名他默认是$host,我没有改动,目标 url 我写的就是百度的 http://baidu.com,添加后后台自动生成代码如下:

我看了设置前后对比,主要就是自动生成了#PROXY-START 到
#PROXY-END 结束 那一大段 location 的配置,第一个 location 就是你说的 host 头,这样配置打开是 502,我注释掉上面代码中的 502 那一句还是没变


server
{
listen 80;
server_name vir.zyclub.top;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/vir.zyclub.top;

#SSL-START SSL 相关配置,请勿删除或修改下一行带注释的 404 规则
#error_page 404/404.html;
#SSL-END

#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START PHP 引用配置,可以注释或修改

#PROXY-START
location ~ /purge(/.*) {
proxy_cache_purge cache_one $host$request_uri$is_args$args;
#access_log /www/wwwlogs/vir.zyclub.top_purge_cache.log;
}

location /
{
proxy_pass http://www.baidu.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;

#缓存相关配置
#proxy_cache cache_one;
#proxy_cache_key $host$request_uri$is_args$args;
#proxy_cache_valid 200 304 301 302 1h;

#持久化连接相关配置
#proxy_connect_timeout 30s;
#proxy_read_timeout 86400s;
#proxy_send_timeout 30s;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection "upgrade";

add_header X-Cache $upstream_cache_status;

expires 12h;
}

location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://www.baidu.com;

}
#PROXY-END

include enable-php-54.conf;
#PHP-INFO-END

#REWRITE-START URL 重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/vir.zyclub.top.conf;
#REWRITE-END

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}

access_log /www/wwwlogs/vir.zyclub.top.log;
}
msg7086
2018-02-17 00:29:45 +08:00
规则一眼看不出毛病。有重启过 nginx 吗?
taibin
2018-02-17 00:57:29 +08:00
@msg7086 每次都重载加重启

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/430780

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX