【问题标题】:nginx return 404 result when using proxy_pass featurenginx 在使用 proxy_pass 功能时返回 404 结果
【发布时间】:2019-05-10 04:44:27
【问题描述】:

我的配置文件@/etc/nginx/conf.d/:

server{
    listen 443 ssl http2;
    server_name api.opera.test.com; 
    client_max_body_size 1G;

    ssl on;
    ssl_certificate  /etc/nginx/cert/_.test.com.crt;
    ssl_certificate_key  /etc/nginx/cert/_.test.com.key;
    ssl_session_timeout 5m;

    location / {
        if ($request_method ~* "(GET|POST)") {
          add_header "Access-Control-Allow-Origin"  *;
        }
        if ($request_method = OPTIONS ) {
          add_header "Access-Control-Allow-Origin"  *;
          add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
          add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
          return 200;
        }
        proxy_pass http://127.0.0.1:6666/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Fowarded-For $proxy_add_x_forwarded_for;
        proxy_cache_valid 200 3d;
        proxy_ssl_server_name on;
        proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   /usr/share/nginx/html;
    }  
}

但是当我卷曲我代理的主机时,它返回了:

[root@develop conf.d]# systemctl restart nginx
[root@develop conf.d]# curl -k http://api.opera.test.com:6666
世界你好!
[root@develop conf.d]# curl -k https://api.opera.test.com

<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.14.0</center>
</body>
</html>

我尝试使用 proxy_pass http://127.0.0.1:6666;而不是 proxy_pass http://127.0.0.1:6666/;不幸的是,它对我不起作用。

【问题讨论】:

  • 注意点 - 'ssl on;' ssl 指令已过时,不应再使用。见nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl。对于 404 错误,nginx 日志显示什么?
  • @ben5556 谢谢你!我在 nginx 日志中发现了错误:2018/12/10 20:13:04 [crit] 31321#31321: *1 connect() to 127.0.0.1:6666 failed (13: Permission denied) while connecting to upstream, client: 192.168.19.15, server: api.opera.test.com, request: "GET /favicon.ico HTTP/2.0", upstream: "http://127.0.0.1:6666/favicon.ico", host: "api.opera.test.com", referrer: "https://api.opera.test.com/".
  • @ben5556 这个命令帮我解决了这个问题:setsebool -P httpd_can_network_connect 1 再次感谢!

标签: nginx


【解决方案1】:

这个命令帮我解决了这个问题:setsebool -P httpd_can_network_connect 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2022-11-03
    • 2021-02-24
    • 2023-04-03
    • 2018-12-20
    • 2022-07-07
    • 1970-01-01
    相关资源
    最近更新 更多