Linux nginx配置文件设置非指定域名不能访问 nginx配置只能指定域名访问

本文介绍了一种通过Nginx配置实现仅允许指定域名访问的方法。当尝试使用非授权域名访问时,会自动重定向到另一个指定站点,以此来防止恶意解析带来的安全风险。

当服务器被恶意解析指向导致用其它的域名也能访问时,可以在Nginx配置文件中设置只有允许的域名才能访问。

# 设置非指定域名访问则不允许访问
set $hostflag 0;
if ($host != 'www.aaa.com') {
   set $hostflag "${hostflag}1";
}
if ($host != 'www.bbb.com') {
   set $hostflag "${hostflag}1";
}
if ($hostflag = '011') {
   rewrite ^/(.*)$ https://www.google.com/$1 permanent;
   #return 403;
}

如上配置,当访问的域名不是指定的两个合法域名时,直接转向其它域名。

可以通过配置 Nginx 的 `server` 块来实现通过域名访问特定文件的需求。具体配置方式涉及域名绑定、监听端口设置、以及文件路径的指定。 以下是一个示例配置,假设用户希望通过域名 `www.example.com` 访问位于 `/var/www/html/specific_file.html` 的特定文件: ```nginx server { listen 80; server_name www.example.com; location /specific_file.html { root /var/www/html; index specific_file.html; # 确保访问路径为 www.example.com/specific_file.html } } ``` 在上述配置中: - `listen 80;` 表示监听 HTTP 默认端口。 - `server_name www.example.com;` 指定配置仅响应对 `www.example.com` 的请求。 - `location /specific_file.html` 匹配特定文件路径。 - `root /var/www/html;` 指定了文件存储的根目录,结合 `location` 可以精确访问到 `/var/www/html/specific_file.html` 文件。 如果希望将域名访问直接指向某个具体文件而目录,可以使用 `rewrite` 或 `return` 进行重定向: ```nginx server { listen 80; server_name www.example.com; location / { rewrite ^/$ /specific_file.html break; } location /specific_file.html { root /var/www/html; index specific_file.html; } } ``` 以上配置中,访问 `www.example.com` 会自动重定向到 `www.example.com/specific_file.html`。 完成配置后,需要重新加载 Nginx 配置以使更改生效: ```bash /usr/local/nginx/sbin/nginx -s reload ``` 确保本地 DNS 或 hosts 文件已正确配置指向该域名的 IP 地址,以便通过浏览器访问域名时能够解析到 Nginx 所在服务器 [^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值