【发布时间】: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