gpt4 book ai didi

Nginx 限制域

转载 作者:行者123 更新时间:2023-12-04 08:32:03 25 4
gpt4 key购买 nike

请在 中找到以下设置/etc/nginx/sites-enabled 在我的网站域名下。 (mysite.lk)

server {  
listen 80;
server_name mysite.lk www.mysite.lk;

location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8080";
}

}

该应用程序在端口 8080 上运行,在这里我将所有 80 流量重定向到 8080。
我的网站只使用 我的网站.lk www.mysite.lk 域名。

因此,我想 限制/阻止所有其他域 (除 mysite.lk 和 www.mysite.lk 之外)将访问此服务器 IP。为了实现这一目标,我需要做哪些改变?

我尝试了很多东西,例如在
Why is nginx responding to any domain name? ,但在 nginx 启动时出错。

请帮帮我!
谢谢。

更新

找到了答案。在给定配置之前的配置顶部应该需要一个包罗万象的服务器 block ,如下所示。代码块应该是这样的。
server {
return 403;
}

server {
listen 80;
server_name mysite.lk www.mysite.lk;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:8080";
}

}

最佳答案

以上所有答案都是正确的。但是如果其他域试图通过端口 443(https/SSL) 访问您的主机,它们都不起作用。

要阻止访问 https 请求,只需在主机的 https 服务器配置中添加一个 if block 。

    server {

server_name www.xyz.com xyz.com;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}


listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot

if ($host = "www.specificdomainyouwanttoblock.com") {
return 404;
}

if ($host = "specificdomainyouwanttoblock.com") {
return 404;
}

#or you can simply add:

if ($host != "yourdomain.com") {
return 404;
}

}

关于Nginx 限制域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47237633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com