Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nginx反向代理之后,静态文件找不到 #13

Open
GE-fighting opened this issue May 7, 2024 · 3 comments
Open

nginx反向代理之后,静态文件找不到 #13

GE-fighting opened this issue May 7, 2024 · 3 comments

Comments

@GE-fighting
Copy link

问题:
通过路由/app/amprobe来隐藏服务的端口,但是打开首页,发现静态文件路径错误,正确的应该是domain/app/amprobe/静态文件,现在是domain/静态文件
请问大佬有什么方法可以解决嘛,或者在哪块代码可以把静态文件的相对路径改成绝对路径

@amuluze
Copy link
Owner

amuluze commented May 7, 2024

问题: 通过路由/app/amprobe来隐藏服务的端口,但是打开首页,发现静态文件路径错误,正确的应该是domain/app/amprobe/静态文件,现在是domain/静态文件 请问大佬有什么方法可以解决嘛,或者在哪块代码可以把静态文件的相对路径改成绝对路径

呃,没看太懂是什么意思

@GE-fighting
Copy link
Author

问题: 通过路由/app/amprobe来隐藏服务的端口,但是打开首页,发现静态文件路径错误,正确的应该是domain/app/amprobe/静态文件,现在是domain/静态文件 请问大佬有什么方法可以解决嘛,或者在哪块代码可以把静态文件的相对路径改成绝对路径

呃,没看太懂是什么意思

比如我的域名是xxx.com,然后amprobe服务部署在8888端口,但在公网上,我不想8888端口暴露,所以我使用的是nginx路由代理/app/amprobe来代理8888端口,这些服务的访问从xxx.com:8888 就变成了xxx.com/app/amprobe;但是这样存在一个问题,就是访问不到静态文件了,页面上静态文件的路径从原本的xxx.com:8888/js等变成了xxx.com/js,找不到了
image

@amuluze
Copy link
Owner

amuluze commented May 8, 2024

问题: 通过路由/app/amprobe来隐藏服务的端口,但是打开首页,发现静态文件路径错误,正确的应该是domain/app/amprobe/静态文件,现在是domain/静态文件 请问大佬有什么方法可以解决嘛,或者在哪块代码可以把静态文件的相对路径改成绝对路径

呃,没看太懂是什么意思

比如我的域名是xxx.com,然后amprobe服务部署在8888端口,但在公网上,我不想8888端口暴露,所以我使用的是nginx路由代理/app/amprobe来代理8888端口,这些服务的访问从xxx.com:8888 就变成了xxx.com/app/amprobe;但是这样存在一个问题,就是访问不到静态文件了,页面上静态文件的路径从原本的xxx.com:8888/js等变成了xxx.com/js,找不到了 image

明白了,这其实是在 amprobe 之前又加了一层 NGINX 做反向代理对吧, 其中的关键配置可以参考下面

server {
    listen       80;
    server_name xxx.com;
    return 301 https://$server_name$request_uri;
}

# amprobe
server {
    listen 443 ssl;
    server_name xxx.com;

    ssl_certificate xxx/fullchain.pem;
    ssl_certificate_key xxx/privkey.pem;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
    ssl_prefer_server_ciphers off;
   
    client_max_body_size 10240m;
    client_body_buffer_size 10240m;

    location /app/amprobe/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://宿主机 ip:8888;
    }

    location app/amprobe/wss/ {
        proxy_pass http://宿主机 ip:8888/ws/;

        proxy_http_version 1.1;

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

不过这样也有一个问题是通过 websocket 查看容器日志的功能会不可用,没时间排查具体什么原因,后面我在看看

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants