我已经使用 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,那将会很有帮助。