Nginx IP 根到我的一个域?

Nginx IP 根到我的一个域?

我已经使用 Nginx 等设置了 4 个域,并且有一个结构如下的 html 文件夹:

html/site1/
html/site2/
html/site3/
html/site4/

问题是,当我转到 123.456.789.012 时,我得到了默认的 Nginx 页面,而我的域名实际上位于 123.456.789.012/site1/ 等。这对我来说很有意义,我知道它为什么这样做,所有站点都在根目录的子文件夹中。

基本上,我希望 123.456.789.012 重定向到 123.456.789.012/site1/,但不附加 /site1/。如果不将 site1 的文件移动到根目录,这可行吗?

保持原样还有意义吗?我无法想象有人会想通过 IP 浏览我的网站。

答案1

只需将default_server参数添加到nginx.conflisten相应部分的指令中即可server {}

例如,

server {
    listen 80 default_server;
    server_name site1.domain.com;

    location / {
        root /path/to/html/site1;
    }
}

http://nginx.org/en/docs/http/ngx_http_core_module.html#listen

如果存在 default_server 参数,则该服务器将成为指定地址:端口对的默认服务器。如果所有指令均不包含 default_server 参数,则第一个具有地址:端口对的服务器将成为该对的默认服务器。

答案2

听起来您正在寻找root指令:

server {
    # things;
    location / {
        root /path/to/site1/;
        # things;
    }
}

然而,考虑到问题的措辞,这可能不是你想要的。阅读文档是值得的:http://wiki.nginx.org/HttpCoreModule#root

如果您也发布了您的 nginx.conf,那将会很有帮助。

相关内容