nginx - Nginx 在针对特定子域时抛出 404 错误代码
问题描述
我很难将 nginx 配置为反向代理。让我们看看我想要实现的目标:
这个想法是让 Nginx 处理对内部网络的所有 Web 请求,并根据子域重定向到好的请求。
为了实现它,我为每个域创建了一个配置文件。第一个重定向到 App1 工作正常。我很难对付第二个。
这是我的 subdomain2.company.com.conf
log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name $host to: $upstream_addr: $request $status upstream_response_time $upstream_response_time msec $msec request_time $request_time';
underscores_in_headers on;
upstream connecteddevice {
server 192.168.1.21:8021;
}
server {
listen 80;
server_name www.connecteddevice.company.com connecteddevice.company.com;
include snippets/letsencrypt.conf;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name www.connecteddevice.company.com;
ssl_certificate /etc/letsencrypt/live/connecteddevice.company.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/connecteddevice.company.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/connecteddevice.company.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
return 301 https://connecteddevice.company.com$request_uri;
}
server {
listen 443 ssl http2;
server_name connecteddevice.company.com;
error_log /var/log/nginx/connecteddevice.company.com.error.log;
access_log /var/log/nginx/connecteddevice.company.com.access.log upstreamlog;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
ssl_certificate /etc/letsencrypt/live/connecteddevice.company.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/connecteddevice.company.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/connecteddevice.company.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
location / {
proxy_pass http://connecteddevice/;
}
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
问题是,使用此配置,在域的根目录处请求 js 文件会返回 404。当我直接调用http://192.168.1.21:8021/webportal.js时一切正常,但调用https://subdomain2.company .com/webportal.js返回 404,响应正文包含 index.html。css 请求也是如此。
我所做的有什么问题?
谢谢您的帮助 :)
解决方案
推荐阅读
- python-3.x - 有没有办法将变量作为计数器传递给python中的列表索引?
- python-3.7 - 珠宝库存重量管理系统程序
- computer-vision - 语义分割——尽管二进制交叉熵用于二进制图像分割,但仍使用分类交叉熵
- javascript - 无法在回调函数中访问 Angular 范围
- matlab - 如何使用向量而不是参数列表调用函数句柄?
- python - 我试图根据某些条件隐藏数据
- java - 构建时找不到符号 request.getServletContext()
- json - JSON Object 的尾随逗号有什么问题
- python - 有没有办法使用 OpenCV 和 Python 返回图像中不同颜色的像素数量的值
- python-3.x - 如何为 Python 生成的 Outlook 电子邮件草稿创建正确的电子邮件地址?