Nginx。将https请求限制到一个域

Nginx。将https请求限制到一个域,nginx,Nginx,我在Nginx后面运行一个api。 通过Nginx在公司的域上设置了Certbot SSL证书 我可以通过https://www.my-domain.com在https://www.another-app.com仅通过https使用第一个域 现在每个人都可以访问https://www.my-domain.com但我需要nginx服务器只能从https://www.another-app.com 这是我的nginx默认配置文件 server{ root /var/www/html;

我在Nginx后面运行一个api。 通过Nginx在公司的域上设置了Certbot SSL证书

我可以通过
https://www.my-domain.com
https://www.another-app.com
仅通过
https
使用第一个域

现在每个人都可以访问
https://www.my-domain.com
但我需要nginx服务器只能从
https://www.another-app.com

这是我的nginx默认配置文件

server{

    root /var/www/html;

    server_name my-domain.com www.my-domain.com;
    location / {
        proxy_pass http://localhost:8000; 
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.my-domain.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/www.my-domain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf; 
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

server {
    if ($host = my-domain.com) {
        return 301 https://$host$request_uri;
    } 


    if ($host = www.my-domain.com) {
        return 301 https://$host$request_uri;
    } 

server_name my-domain.com www.my-domain.com;
    listen 80;
    return 404; 
}

由于您没有提供足够的信息/需要更多关注,人们将投票决定是否关闭此网站

您的问题定义(您希望基于域限制访问)不清楚。术语“域”适用于不同上下文中的不同事物。假设您指的是一个DNS域,那么您需要重新考虑这个问题。虽然可以使用PTR记录来解析主机所属的DNS域,但实际上,由于技术原因和PTR记录带来的好处有限,大多数人不维护PTR记录。即使数据存在,在每个请求上使用它进行身份验证也会非常缓慢。最终,这归结为基于主机的身份授权访问,而主机的身份几乎没有安全价值

o如果所有计算机都在同一子网中,则您的公司控制子网,并且子网中没有要排除的主机,在这种情况下,使用IP地址进行身份验证可能有一定的价值-nginx很高兴使用基于CIDR的表示法处理此问题


对于一组分布式主机(即并非所有主机都在同一子网中),您需要使用某种基于令牌的身份验证。常见的是共享机密(密码)和客户端证书

至于你的标题…限制访问什么,API?API的路径是什么?你需要更具体一点,当然!我需要将向nginx发出https请求的访问限制在一个域内。我明白了。你说的是两个不同的域名和一个API。API似乎无关紧要,使您的问题令人困惑。如果API是相关的,请解释如何使用。请把问题缩小到手头的问题。我需要托管在
https://www.my-domain.com
只能从
https://www.another-app.com
首先,您是否尝试过更改
服务器名称my-domain.com www.my-domain.com
服务器\u name other-app.com www.other-app.com?很抱歉出现歧义。我在
https://www.my-domain.com
,每个人都可以接受。我需要Nginx服务器只接受来自
https://www.another-app.com
。希望这是更有用的。。。