目前,在我的配置中,我已设置一个域example.com
来连接到网站。然后连接control.example.com
到具有 2054 端口的控制面板。因此,要访问控制面板,它将是;但是,出于某种原因,我也可以通过不使用子域https://control.example.com:2054
来访问控制面板。https://example.com:2054
有没有办法防止这种情况发生,并且只https://control.example.com:2054/同时防止https://example.com:2054/访问?
答案1
有没有办法防止这种情况发生,并且只https://control.example.com:2054/同时防止https://example.com:2054/访问?
是的。最简单的方法可能是使用 Nginx 作为反向代理。可以找到使用 Nginx 的基本概述这里。
简而言之,您需要设置两个类似于以下的服务器块:
# Block access to example.com:2054, assuming Nginx is servicing that port.
#
server {
listen 2054;
server_name example.com;
# 404 - Not Found is returned, but 403 - Forbidden is another option
location / {
return 404;
}
}
# another (unblocked) virtual host on the same port e.g. control.example.com:2054
#
server {
listen 2054;
server_name control.example.com;
# Proxy our web data
location / {
proxy_pass http://10.0.0.10:3005;
}
}
此示例假设使用了两个不同的端口,因为此设置很容易处理。您要公开访问服务的端口应该转发,而内部(实际)服务端口则不应该转发。IPproxy_pass
应该(显然)是运行您要访问的服务的 PC 的 IP。
如果上述解决方案不适合您,请注意,您可以采取一些措施iptables或类似的东西。