nginx 支持把静态文件也一起 proxy_pass 了吗? 我在前端服务器配置了个 nginx,另外个服务器跑 nexus,现在想把 nexus 通过 nginx 代理,遇到一个问题,就是默认的 css js 的静态文件,没法通过 nginx 转发给 nexus,直接提示在 /usr/local/nginx/html/static/下找不到文件,我纯粹想把 nginx 当个端口转发使用,连静态文件一起转发了
1
mringg 2018-07-30 14:37:27 +08:00
支持的 再好好检查下路径对不对吧
|
2
Trim21 2018-07-30 14:44:11 +08:00 via Android
把 nexus 通过 nginx 代理, 为什么要把静态文件通过 nginx 转发给 nexus ?看你的描述应该是把静态文件通过 Nexus 转发给 Nginx 吧…
|
3
helllkz OP @Trim21
因为 nexus 自带了一个 netty,nginx 在 A 服务器上,nexus 在 B 服务器上,如果不把 css js png 等静态文件的请求发到 B 上面去的话,那会在 A 服务器的 root 下面找,就 404 了 目前临时的做法是没在 http 里面做,直接写了个 upstream,纯粹当个端口转发用了 |
4
anthoy 2018-07-30 16:34:20 +08:00
以我菜菜的水平来说应该可以的,不过不是应该把静态文件用 nginx 管理吗,怎么要 nginx->nexus->静态的?
|
5
jswh 2018-07-30 16:37:44 +08:00
贴个配置看看
|
6
LoeNet 2018-07-30 17:11:21 +08:00
你这个需要配置 Location 转发到后端的 upstream
|
7
helllkz OP 如果 nginx 和 nexus 在一台服务器,这么是没问题的
server { listen *:80; server_name www.example.com; # allow large uploads of files client_max_body_size 1G; # optimize downloading files larger than 1G #proxy_max_temp_file_size 2G; location / { proxy_pass http://localhost:8081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 如果是在 2 台服务器,这样就有问题了,/static 下的文件就会去找 nginx 的 root,不会被转发的 server { listen *:80; server_name www.example.com; # allow large uploads of files client_max_body_size 1G; # optimize downloading files larger than 1G #proxy_max_temp_file_size 2G; location / { proxy_pass http://10.0.0.100:8081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } |
8
Judoon 2018-07-31 00:53:05 +08:00 via Android
你把 proxy_pass 那行,最后的 /去掉试试
|