如何解决指定位置的 Nginx 反向代理问题
我想按照以下说明访问反应项目之一。
https://my.domain.com/app1 ==> HTTP://localhost:7001
以下是 Nginx 配置:
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/my.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my.domain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name my.domain.com;
error_log /var/log/nginx/my.domain.com.err;
access_log /var/log/nginx/my.domain.com.log;
location /app1 {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Pragma "no-cache";
add_header Cache-Control "no-cache";
proxy_pass http://localhost:7001/;
proxy_redirect default;
sub_filter_types *;
sub_filter 'action="/' 'action="/app1/';
sub_filter 'href="/' 'href="/app1/';
sub_filter 'src="/' 'src="/app1/';
sub_filter_once off;
}
}
问题是一些源文件由 https://my.domain.com/app1/...
响应,而一些源文件由 https://my.domain.com/...
响应,第二个源文件无法访问并给出 HTTP 404
错误。
例如,以下来源已回复为 HTTP 200
:
https://my.domain.com/app1/static/css/main.091g2s3f.chunk.css
https://my.domain.com/app1/static/js/2.29c551h6.chunk.js
以下响应为 HTTP 404
:
https://my.domain.com/media/contact-title.png
https://my.domain.com/static/media/Yekan.05744gh2.woff
https://my.domain.com/logo.svg
有什么想法吗? 提前致谢。
我做了什么但没有解决:
我确实配置了 Nginx rewrite
,简单的 proxy_pass
和 regex
但问题没有解决,此外,我得到的所有响应都是 HTTP 404
。
解决方法
你只是转发/app1到上游,如果你想转发媒体和静态等,那么你需要更改以下内容
location /app1
到
location /
或者,如果您将它们作为静态文件提供,请添加以下内容
location /static {
root /path/to/your/static/path;
}
然后你可以从example.com/static/something.css调用你所有的静态文件
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。