nginx反向代理异常

下午运营反馈,应用图标无法显示。

拼接图标地址并访问,nginx日志如下:

xxx.23.11.109 - - [09/Oct/2012:18:37:17 +0800] "GET /applogo/2725991bb19199bd0c75b3e736ff57d3.png HTTP/1.1" 404 97 "http://myhost/page/manage" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"
xxx.23.11.109 - - [09/Oct/2012:18:37:17 +0800] "GET /applogo/870f0437c7016c8283b2d73f4253c95a.png HTTP/1.1" 502 166 "http://myhost/page/manage" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0.1"

图标显示架构:

1. 图片地址:/applogo/image.png

2. 拼接域名:http://myhost/applogo/image.png

3. nginx缓存12小时

4. 反向代理

location /applogo/ {
    rewrite ^/applogo/([a-z0-9]+)\.([a-z]+) /show?key=$1&suffix=$2 break;

    proxy_cache applogo;
    proxy_cache_valid  200 12h;
    proxy_cache_key $host$uri$is_args$args;
    proxy_pass http://proxy_address;
}

#http://proxy_address/show?key=imgage&suffix=png

调试过程:

1. 图片某些时候可以访问。存在两种可能:1. 某些服务器出问题。2. 某些时段出问题。绑定hosts测试ccc机房持续可用;zwt机房2台正常,1台异常。

2. 在zwt异常机器ping proxy_address正常

3. zwt异常机器curl -O "http://proxy_address/show?key=imgage&suffix=png". 确认:异常服务器nginx反向代理服务出现问题。

4. 确认异常服务器&正常服务器配置一样,且删除nginx缓存,正常服务器可以再次缓存,异常服务器无缓存。

5. 重启nginx服务器

6. 异常解决

7. 原因:不详。

转载于:https://www.cnblogs.com/codesay/p/3278715.html

### 验证 Nginx 反向代理配置正确性的方法 为了确保 Nginx 反向代理配置的正确性,可以采用以下几种方式: #### 1. **语法检查** 在修改配置文件后,可以通过命令行工具来验证 Nginx 配置文件是否存在语法错误。运行以下命令即可完成此操作: ```bash nginx -t ``` 如果配置无误,终端会显示类似于 `syntax is ok` 和 `test is successful` 的提示信息[^2]。 #### 2. **访问测试** 启动或重新加载 Nginx 后,尝试通过浏览器或其他 HTTP 工具(如 curl 或 Postman)访问目标 URL。例如,假设反向代理指向的是本地的一个服务,则可以在浏览器中输入 `http://localhost/` 并观察返回的内容是否来自指定的后端服务器。 ```bash curl http://localhost/ ``` #### 3. **日志分析** Nginx 提供了详细的访问日志和错误日志功能,这些日志可以帮助排查潜在问题。默认情况下,日志路径通常为 `/var/log/nginx/access.log` 和 `/var/log/nginx/error.log`。当遇到异常情况时,查看这两个文件中的记录能够快速定位原因。 - 访问日志用于跟踪客户端请求及其对应的响应状态码; - 错误日志则专注于报告程序执行期间发生的任何严重事件或者警告消息[^2]。 #### 4. **网络抓包** 利用 Wireshark 或 tcpdump 等工具捕获并分析数据包流,确认实际通信过程是否按照预期进行。这种方法特别适用于调试复杂的场景比如涉及多个中间层节点的情况或者是怀疑存在防火墙干扰的情形下非常有用。 #### 5. **健康检查脚本** 编写简单的 shell 脚本来自动化整个流程,包括但不限于发送特定类型的请求到不同的 URI 地址、解析 HTML 页面内容寻找关键字匹配项等等。这样不仅可以节省时间而且还能提升效率尤其是面对大规模部署环境的时候显得尤为重要[^1]。 ```bash #!/bin/bash STATUS_CODE=$(curl --write-out %{http_code} --silent --output /dev/null http://yourdomain.com/) if [ "$STATUS_CODE" -eq 200 ]; then echo "Proxy works fine." else echo "Something went wrong!" fi ``` 以上就是一些常见的用来检验 Nginx 是否被成功设置成反向代理的方法总结。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值