使用的是 windows nginx-1.21.6 配置配置文件如下:
配置完后重启nginx服务后浏览器访问这个地址但是却打不开,如下:
明显已经跳转了,但是不知道为什么会出现 443 这个端口,确认防火墙都关闭了,求指教怎么解决!
小魔女参考了bing和GPT部分内容调写:
可能是nginx的配置文件有问题,需要检查一下配置文件中的server_name,listen,location等参数是否正确,是否符合nginx配置规范,是否有语法错误。另外,可以查看nginx的error日志,看看是否有报错信息,从而定位问题。另外,可以使用telnet命令,查看服务器是否正常开启,比如telnet 127.0.0.1 80,如果返回的是:Connected to 127.0.0.1.,说明服务器已经正常开启,可以正常访问,如果返回的是:Could not open connection to the host,on port 80:Connect failed,说明服务器没有正常开启,可能是端口被占用,或者是防火墙没有正确配置等。
回答不易,记得采纳呀。
参考GPT和自己的思路:根据您提供的配置文件,Nginx 配置看起来没有问题。如果浏览器显示的是 HTTPS,可能是因为浏览器默认使用了 HTTPS 协议,而不是 HTTP。
您可以尝试在浏览器中手动输入HTTP协议的地址,例如:http://192.168.1.1,看是否能够访问。
如果仍然无法访问,您可以检查 Nginx 错误日志,以确定是否有任何错误发生。默认情况下,Nginx 日志位于 /var/log/nginx/error.log。
如果没有错误日志或者日志中没有有用信息,您可以尝试使用 curl 命令从命令行测试服务器是否正常响应。例如,可以运行以下命令:
curl -I http://192.168.1.1/
这将发送一个 HTTP 请求并返回服务器的响应头信息。如果服务器没有响应,可能是服务器的网络配置出现了问题,需要进一步排查。
希望这些信息对您有所帮助!
参考这个试试,如果不行,把443改成其它端口,如8443
server {
listen 80;
server_name 192.168.1.1;
return 301 http://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name 192.168.1.1;
...
}
是你的192.168.1.1:80 跳到你的 http:// myserver 服务接口去 你为啥直接访问转发的地址
http:// myserver 改成 myserver,把http://去掉 试试。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,你的配置文件有一个错误,就是把两个 server 配置放在了同一个 http 块中,应该把它们放在两个不同的 server 块中。
其次,你的端口问题是因为你把 ssl 参数写到了 http 块中,导致 nginx 在监听 443 端口时,自动开启了 https 协议。如果你只是想用 http 协议访问的话,需要把 ssl 参数从 http 块中移除,放到 server 块中。
以下是修改过后的配置文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name domain.com;
ssl_certificate domain.crt;
ssl_certificate_key domain.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
修改后的配置文件解释:
至于为什么会出现 443 端口,这是因为在监听 80 端口的 server 块中,你使用了 $host 变量进行重定向,它会自动将请求转向到域名后面的默认端口。由于你监听的是80端口,所以请求会被重定向到443端口。
同时需要注意的是,这里的 SSL 证书和密钥是需要自己提供的,不同的配置可能会要求不同的证书和密钥,需要根据实际情况进行调整。
如果我的回答解决了您的问题,请采纳!
你配置的是80,用http访问
等你配置ssl证书后,在用https访问
你这个访问的URL就不对,你是80的负载均衡端口,映射到后端的8080端口,你要通过server_name指定的ip或者域名去访问,而且端口也不对,你访问的应该是80而不是443