nginx 不同目录静态资源位置 通过二级目录(路径)映射不同的反向代理

本文详细介绍了Nginx中如何配置静态资源缓存、二级目录映射及负载均衡,包括具体的location配置和upstream设置,有助于理解Nginx在实际项目中的应用。

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

静态资源

location ^~ /console/ {
    root /console;
    expires  30d;
}

location ~* \.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
    root /dist;
    expires  30d;
}


二级目录映射



server {
        listen 80;
        server_name demo.domain.com;
        #通过访问service二级目录来访问后台
    location /service/ {
            #DemoBackend1后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点导致404
            proxy_pass      http://DemoBackend1/;
            proxy_redirect  off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        #其他路径默认访问前台网站
        location / {
            proxy_pass http://DemoBackend2;
            proxy_redirect  off;
            proxy_set_header  Host  $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

#简单的负载均衡节点配置
upstream DemoBackend1 {
     server 192.168.1.1;
     server 192.168.1.2;
     ip_hash;
 }
upstream DemoBackend2 {
     server 192.168.2.1;
     server 192.168.2.2;
     ip_hash;
}



转载
https://zhangge.net/5054.html

https://segmentfault.com/q/1010000009158836
<think>好的,用户想了解如何在Nginx中配置访问三个不同的静态文件。首先,我需要回忆Nginx的基本配置结构。通常,配置文件是nginx.conf,里面包含http块,其中有server块,server块里的location块用来处理不同的请求路径。 用户提到三个不同的静态文件,可能需要三个不同目录来存放这些文件。例如,假设用户有三个静态资源目录:/var/www/html/files1、/var/www/html/files2和/var/www/html/files3,分别对应不同的访问路径。 接下来,每个location块需要指向对应的物理目录。例如,使用location /static1/来映射到第一个目录,location /static2/到第二个,以此类推。需要确保每个location块使用alias或root指令正确指向目录。通常,alias会替换匹配的URI部分,而root会直接将路径追加到root后面。这里可能用alias更合适,因为路径和URI是一一对应的。 另外,要处理可能的权限问题,确保Nginx进程有权限读取这些目录。可能需要检查目录权限和SELinux设置(如果启用的话)。此外,配置完成后需要重新加载Nginx使配置生效,使用nginx -s reload命令。 还要考虑是否需要添加索引文件,比如index.html,或者是否要列出目录内容。如果不需要目录列表,应该关闭autoindex。同时,可能需要配置缓存头或访问控制,但用户没有特别提到,所以可能不需要深入这部分。 最后,测试配置是否正确,可以通过访问对应的URL路径,比如http://domain.com/static1/file.txt,确认是否能正确获取文件。如果有错误,查看Nginx的错误日志进行排查。</think>以下是通过Nginx配置访问多个静态文件的详细步骤(假设三个文件分别存放在不同目录): 一、基础配置结构 ```nginx http { server { listen 80; server_name your_domain.com; # 第一个静态文件目录配置 location /static1/ { alias /var/www/html/files1/; autoindex off; } # 第二个静态文件目录配置 location /static2/ { alias /var/www/html/files2/; autoindex off; } # 第三个静态文件目录配置 location /static3/ { alias /var/www/html/files3/; autoindex off; } } } ``` 二、关键参数解析 1. `alias` vs `root`: - 使用`alias`时:URI路径与文件路径完全对应 $$请求\ http://domain/static1/test.jpg \Rightarrow /var/www/html/files1/test.jpg$$ - 使用`root`时:路径会自动拼接location路径 $$若配置为root /var/www/html;\ location /static1/ \{...\} \Rightarrow 实际路径为/var/www/html/static1/$$ 2. 权限配置建议: ```bash chmod 755 /var/www/html/files{1..3} chown -R nginx:nginx /var/www/html/files{1..3} ``` 三、高级配置示例(添加缓存控制) ```nginx location /static1/ { alias /var/www/html/files1/; expires 1d; add_header Cache-Control "public, max-age=86400"; access_log off; } ``` 四、验证流程 1. 检查配置语法 ```bash nginx -t ``` 2. 重载配置 ```bash nginx -s reload ``` 3. 测试访问 ```bash curl -I http://localhost/static1/example.txt ``` 五、常见问题排查 1. 403 Forbidden错误: - 检查目录权限是否可读 - 确认SELinux状态:`getenforce` - 查看错误日志:`tail -f /var/log/nginx/error.log` 2. 404 Not Found: - 确认alias路径是否正确 - 检查文件实际存储位置 - 验证配置是否生效:`nginx -T` 六、最佳实践建议 1. 推荐目录结构: ``` /var/www/ ├── static_assets/ │ ├── images/ │ ├── documents/ │ └── downloads/ ``` 2. 安全增强配置: ```nginx location ~* \.(txt|pdf)$ { add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "DENY"; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值