![如何在单独的根文件夹中创建 2 个 NGINX 配置文件,其中包含子域 + 单独的根目录中的第二个域](https://linux22.com/image/754273/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%8D%95%E7%8B%AC%E7%9A%84%E6%A0%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E5%88%9B%E5%BB%BA%202%20%E4%B8%AA%20NGINX%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%8C%E5%85%B6%E4%B8%AD%E5%8C%85%E5%90%AB%E5%AD%90%E5%9F%9F%20%2B%20%E5%8D%95%E7%8B%AC%E7%9A%84%E6%A0%B9%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%BA%8C%E4%B8%AA%E5%9F%9F.png)
我有两个域example.com
和example.net
。
- 两者都应具有测试子域,例如
test.example.com
指向不同的根,如 root/var/www/example.com/html
和 root/var/www/test-example.com/html
。 - &将被永久重定向至
www.example.com
& 。www.example.net
example.com
example.net
在这种情况下,我的 NGINX 配置文件应该是什么样子?
最好有 2 个文件/etc/nginx/sites-available/example.com
并且/etc/nginx/sites-available/example.net
(第二个指向根目录/var/www/example.net/html
)
答案1
这是我修改后的答案原始答案对于你的第一个问题。
以下配置示例针对的是,如果您将所有的替换为/etc/nginx/sites-enabled/example.com
,则另一个可能是。/etc/nginx/sites-enabled/example.net
example.com
example.net
server {
listen 80;
server_name example.com www.example.com test.example.com;
# HTTP to HTTPS redirections for all the subdomains
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name www.example.com;
# ssl_* directives here
# www to non-www for SEO canonical reasons
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# ssl_* directives here
root /var/www/example.com/html;
}
server {
listen 443 ssl;
server_name test.example.com;
# ssl_* directives here
root /var/www/example.com/test;
}
- 第一个
server{}
块将普通 HTTP 连接升级为 HTTPS。 - 第二个
server{}
块将 www 重定向到非 www。 - 第三块
server{}
提供来自的文件/var/www/example.com/html
。 - 用不同的根来分离
server{}
块。test.example.com