在 C:\Windows\System32\drivers\etc\hosts
文件中进行修改,并不能直接实现你的需求,即通过浏览器输入 badword
弹出 404 错误。hosts
文件的主要功能是将域名映射到 IP 地址,而不是处理请求或返回特定的 HTTP 状态码。
不过,我可以帮你理解一下整体流程,如何让 Nginx 配置和 hosts
文件配合使用,达到你的目标。
1. Nginx 配置
首先,你已经有了一个基本的 Nginx 配置来检查 URI 是否包含 “badword”,并返回 404。确认你的配置文件(如 /etc/nginx/nginx.conf
或某个站点配置文件)已正确加载并没有语法错误:
server {
listen 80;
resolver 8.8.8.8;
location / {
if ($request_uri ~* "badword") {
return 404;
}
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
error_page 404 = @error404;
}
location @error404 {
return 403;
}
}
确保你已经重新加载了 Nginx 的配置:
sudo nginx -s reload
2. 修改 hosts 文件
假设你想通过自定义域名访问这个 Nginx 服务(例如 myapp.local
),你需要在 hosts
文件中添加相应条目,将该域名指向你的本地服务器(127.0.0.1)。
打开 C:\Windows\System32\drivers\etc\hosts
文件,并添加以下行:
127.0.0.1 myapp.local
3. 测试
现在,你可以在浏览器中访问 http://myapp.local/badword
,根据 Nginx 的配置,它应该会返回一个 404 页面。
注意事项
- 确保没有其他服务占用端口 80。
- 如果使用的是 Windows 防火墙或者其他安全软件,可能需要允许入站流量。
- 在浏览器中清除缓存,以确保能看到最新的变化。
希望这些信息能帮助你完成设置!如果还有其他问题,请随时问我。
内容由零声教学AI助手提供,问题来源于学员提问