nginx - EC2 Nginx 反向代理 Angular S3 Bucket 得到 404 Not Found 错误
问题描述
我有一个使用 Nginx 作为 Web 服务器的 EC2 实例。我有一个位于 S3 存储桶中的 Angular 7 SPA,它已正确设置为提供 Web 内容。我设置了 Nginx 反向代理,以便 S3 存储桶中的 staic SPA 提供对“/”的请求。在对 Nginx 反向代理进行了一些配置之后,我能够获得 SPA 服务并且似乎工作正常。
问题
在 Chrome 中查看 DevTools 中的网络选项卡时,网络请求在 Firefox 中显示为“404 Not Found”。所以应用程序似乎正在加载和工作,但我认为我需要做一些事情来解决请求返回为 404 Not Found 的事实。
最终,这将是一个从 S3 存储桶提供的 Angular SPA,它带有一个 /api,Nginx 还将反向代理到在 EC2 实例上运行的 Node Express 应用程序。
我认为与本次讨论相关的文件是我的 Nginx default.conf,如下所示。
server {
server_name idlewildeave.com;
location / {
# root /usr/share/nginx/html;
# index index.html index.htm;
proxy_http_version 1.1;
proxy_set_header Connection '';
proxy_set_header Host ng4app.s3-website-us-west-2.amazonaws.com;
proxy_set_header Authorization '';
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header Set-Cookie;
proxy_ignore_headers 'Set-Cookie';
proxy_buffering off;
proxy_intercept_errors on;
proxy_redirect off;
proxy_pass http://ng4app.s3-website-us-west-2.amazonaws.com;
}
#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 /usr/share/nginx/html;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/xxxx/xxxx.com/xxxx; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/xxxx/xxxx.com/xxxxx; # managed by Certbot
include /etc/letsencrypt/xxxx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/xxxx.pem; # managed by Certbot
}
server {
if ($host = idlewildeave.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name idlewildeave.com;
# return 404; # managed by Certbot
}
解决方案
推荐阅读
- ruby - 如何将 Ruby 测试/单元日志记录设置为 quiet_mode?
- spring-cloud-stream - 有没有办法在春云流中启动和停止所有流?
- powershell - PowerShell:控制模块中的详细输出
- varnish - Varnish:为多个同时用户提供一个带有 1 个后端请求/连接的大文件
- python - PyCharm/Visual Studio中MacOS上的python-nmap---Nmap 需要root权限
- css - 如何在 Safari 中将渐变文本放在 btn 上?
- python - python - 在python中将json转换为excel时,为什么pandas不格式化日期?
- r - 执行 Rmarkdown 块时停止错误
- python - Python:Scrapy返回所有html后面的元素,而不仅仅是元素的html
- regex - 运费计算时不包括加拿大邮政编码