nginx 配置多个目录

126 篇文章 ¥39.90 ¥99.00
该篇博客详细介绍了如何在nginx服务器配置中设置多个目录,以便分别处理不同的请求路径。通过示例代码展示了如何使用`location`指令指定不同根目录,确保正确地指向/t/deploy/zjdev/deployedApps/zjzc-web-frontEnd/和/t/deploy/zjdev/deployedApps/zjzc-web-backoffice/。同时提到了`root`关键字的用法,指出其指定目录的父目录,并强调了正确配置避免报错的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<pre name="code" class="python">    server {
        listen       8001;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;


        location / {
            root /t/deploy/zjdev/deployedApps/zjzc-web-frontEnd/;
            index  index.html index.htm;
        }

        location /backoffice  {
            root /t/deploy/zjdev/deployedApps/zjzc-web-backoffice/;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}
~ 
root:则是指定目录某个目录的父目录,如:
locate /hello/ {
root /a/;
}
那么在/a/目录下必须有一个hello目录,否则报错.




                
<think>嗯,用户现在想了解如何在Nginx配置多个网站目录。我需要先回顾一下之前的相关回答,然后结合提供的引用内容来组织答案。首先,用户之前的问题已经涉及到了Nginx的默认目录、修改根目录以及配置多个网站的问题。现在用户明确询问配置多个网站目录的方法,应该从不同的配置方法入手。 根据引用[1],配置站点是通过在sites-available下创建配置文件,然后软链接到sites-enabled。这是常见的做法,尤其是在基于Debian的系统上。需要详细说明步骤,比如创建conf文件,设置server块,然后启用站点。 引用[2]提到了通过二级目录来对应多个静态项目。这里可以解释如何在一个server块内使用location指令来映射不同的目录到不同的路径,比如将/app1指向一个目录,/app2指向另一个目录。需要给出具体的配置示例,并说明root和alias的区别。引用[4]讨论了配置多个server块,每个监听不同的端口或域名。这可能涉及到基于域名的虚拟主机或端口区分。比如,用户可能有多个域名,每个域名对应不同的网站目录,或者使用不同的端口号来区分服务。需要给出例子,说明如何为每个server块设置不同的root目录。 另外,用户可能需要了解如何检查配置是否正确,比如用nginx -t测试,然后重载配置。还要提醒权限问题,确保Nginx用户有访问这些目录的权限。需要结构清晰,分步骤说明不同的方法,每种方法适用的情况,并给出示例配置。最后,生成相关问题,比如如何设置基于域名的配置,或者处理端口冲突等。确保引用标记正确,比如[^1]、[^2]等放在对应的位置。</think>在Nginx配置多个网站目录主要有三种方法,分别适用于不同场景: ### 一、基于域名配置站点(虚拟主机) 1. **创建配置文件** ```bash # 在sites-available目录创建配置文件 sudo nano /etc/nginx/sites-available/example1.com.conf ``` 2. **配置示例** ```nginx server { listen 80; server_name example1.com; # 域名标识 root /var/www/example1; # 第一个网站目录[^1] index index.html; } ``` 3. **启用配置** ```bash sudo ln -s /etc/nginx/sites-available/example1.com.conf /etc/nginx/sites-enabled/ ``` ### 二、基于端口配置目录 ```nginx server { listen 8080; # 监听不同端口 server_name localhost; root /var/www/port8080; # 第二个网站目录[^2] } server { listen 8090; server_name localhost; root /var/www/port8090; # 第三个网站目录 } ``` ### 三、基于URL路径配置二级目录 ```nginx server { listen 80; server_name example.com; location /app1 { alias /var/www/app1; # 精确匹配目录路径[^2] try_files $uri $uri/ /app1/index.html; } location /app2 { root /var/www; # 路径会拼接/app2 index index.html; } } ``` ### 操作验证流程 1. 测试配置语法 ```bash sudo nginx -t ``` 2. 重载配置生效 ```bash sudo nginx -s reload ``` 3. 设置目录权限 ```bash sudo chown -R www-data:www-data /var/www/* ``` ### 关键配置对比 | 配置类型 | 标识方式 | 适用场景 | 核心指令 | |----------------|-----------------|--------------------------|-----------------| | 域名虚拟主机 | server_name | 域名网站 | root + server | | 端口区分 | listen | 内部服务隔离 | root + listen | | URL路径映射 | location | 单域名应用部署 | alias/root |
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值