在 AWS 中,我需要通过公共 ip 或公共 dns 拒绝 url 并仅允许按域访问 (CNAME) 的帮助

问题描述

我的域中有 aws ec2 和弹性 ip 和 route53,服务器中有 nginx,这很好用,但是,

我看过其他网站的运作方式,amazon.com udemy.com。 如果您直接通过公共 ip 或公共 dns 访问,则会引发错误。 我的问题是我如何配置它来做同样的事情。

例子:
按域的浏览器网址:amazon.com = ok
公共 ip 的浏览器网址:52.222.137.64 = 400-403 错误。
公共 dns 的浏览器网址:server-52-222-137-64.ams50.r.cloudfront.net = 400-403 错误。

按域的浏览器网址:example.com = ok
公共 ip 的浏览器 url: 124.34.32.245 = ok.
公共 dns 的浏览器网址:ec2-124.34.32.245.eu-west-3.compute.amazonaws.com = ok.

感谢大家的帮助。

示例替代了我的域,这是我的配置。

server {
    listen                  8089 ssl http2;
    listen                  [::]:8089 ssl http2;
    server_name             example.com;
    root                    /var/www/example.com/public;

    # SSL
    ssl_certificate         /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/example.com/privkey.pem;
    #ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    ssl_dhparam             /etc/letsencrypt/ssl-dhparams.pem;

    # security
    include                 nginxconfig.io/security.conf;

    location / {
       proxy_set_header Accept-Encoding "";
        try_files $uri $uri/ /index.html;
    }

    # additional config
    include                 nginxconfig.io/general.conf;


}

server {
    listen      8080;
    listen      [::]:8080;
    server_name example.com;
    include     nginxconfig.io/letsencrypt.conf;

    location / {
       return 301 https://example.com$request_uri;
    }
}

忘了说我也用docker,不知道会不会有关系

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)