我在 Ubuntu 18 上使用 nginx 作为反向代理和到这些本地主机服务的 HTTPS 隧道。这是我的站点配置:
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
server_name my.domain.com;
# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000" always;
location /service1 {
proxy_pass http://localhost:8989;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log /var/log/nginx/my.domain.com;
listen 443 ssl; # managed by Certbot
# Other certbot stuff for signed HTTPS certificate
}
基本上,当我访问 时https://my.domain.com
,我不希望显示任何内容。我希望它显示错误,就好像页面不存在一样。现在它显示“欢迎使用 nginx!”。我已经在 Google 上搜索了摆脱它的方法,但没有成功。我完全禁用default
了/etc/nginx/sites-enabled
。
我只希望 nginx 提供https://my.domain.com/service1
并将 HTTP 重定向到 HTTPS,但不希望提供任何欢迎页面。
答案1
类似这样的事应该可以起作用,靠近现有的位置块。
// New part starts
location / {
return 418;
}
// New part ends
location /service1 {
proxy_pass http://localhost:8989;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}