如何让nginx只响应一个域?

如何让nginx只响应一个域?

我对 nginx 还很陌生,我将 rails 应用程序托管在 nginx+passenger 上。我希望我的网站只能由一个域访问。因此,我将 nginx 配置如下:

server {
    listen       80;
    server_name  mydomain.com www.mydomain.com;
    root /var/deploy/myapp/current/public;
    passenger_enabled on;

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires 1y;
        add_header    Cache-Control  public;
    }
 }

我指定了server_name指令,但是它仍然回答指向该 IP 的任何内容,并且我可以在 access.log 中看到它回答了其他域名。

我做错什么了吗?

答案1

要么在 nginx 中除了当前虚拟主机之外再创建一个新的虚拟主机,该虚拟主机可以捕获除 rails 域名之外的所有其他域名。要么您需要为您的域名获取一个专用 IP 地址。

相关内容