nginx允许指定域名访问本站,其他域名一律跳转

博客围绕Nginx展开,介绍了如何指定特定域名访问网站,以及对其他域名进行跳转设置,这属于后端服务器配置相关内容,能有效管理网站访问途径。

### 配置 Nginx 服务器以支持通过域名访问允许其他设备访问 要确保 Nginx 服务器能够通过域名访问,并且允许其他设备也通过该域名访问,需要完成以下几个关键步骤: #### 配置域名访问 1. **配置 DNS 解析** 确保域名已经正确解析到服务器的公网 IP 地址。可以在域名提供商的 DNS 设置中添加 A 记录,将域名指向服务器的公网 IP。例如,若域名为 `example.com`,则添加 `A` 记录,值为服务器的公网 IP。 2. **配置 Nginx 虚拟主机** 编辑 Nginx 的站点配置文件(通常位于 `/etc/nginx/sites-available/default` 或 `/usr/local/nginx/conf/nginx.conf`),添加一个 `server` 块,指定 `server_name` 为你的域名,并配置 SSL(如果需要 HTTPS 访问)。 ```nginx server { listen 80; server_name example.com www.example.com; location / { root /var/www/html; index index.html; try_files $uri $uri/ =404; } } ``` 如果需要 HTTPS 支持,可以配置 SSL 证书路径: ```nginx server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; location / { root /var/www/html; index index.html; try_files $uri $uri/ =404; } } ``` 3. **禁止 IP 地址直接访问** 为了确保只能通过域名访问,可以添加一个默认的 `server` 块,监听 80 和 443 端口,并返回 403 或 400 错误,以阻止通过 IP 地址访问。 ```nginx server { listen 80 default_server; listen 443 ssl default_server; server_name _; ssl_certificate /etc/nginx/ssl/default.crt; ssl_certificate_key /etc/nginx/ssl/default.key; return 403; } ``` 这样,当用户通过 IP 地址访问时,Nginx 会返回 403 错误[^5]。 #### 允许其他设备访问 1. **确保服务器防火墙开放端口** 确保服务器的防火墙允许 HTTP(80)和 HTTPS(443)端口的入站连接。例如,在 `ufw` 防火墙中,可以使用以下命令: ```bash sudo ufw allow 80/tcp sudo ufw allow 443/tcp ``` 2. **配置服务器监听地址** 确保 Nginx 的 `listen` 指令监听的是 `0.0.0.0`,而不是 `127.0.0.1`,以允许外部设备访问。 ```nginx listen 80; ``` 3. **测试域名访问** 在其他设备上,打开浏览器并输入域名(如 `http://example.com`),应能正常访问服务器内容。 4. **配置域名重定向(可选)** 如果希望将裸域名重定向到 `www` 子域名,可以在 Nginx 中添加重定向规则: ```nginx server { listen 80; server_name example.com; return 301 http://www.example.com$request_uri; } ``` 这样,访问 `example.com` 时会自动跳转到 `www.example.com` [^1]。 #### 总结 通过上述配置,Nginx 可以确保只能通过域名访问,并且其他设备也可以正常访问。关键在于正确配置 DNS 解析、Nginx 虚拟主机、防火墙规则以及监听地址。此外,还可以通过设置默认 `server` 块来阻止 IP 地址直接访问,从而增强安全性[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值