如何 在nginx配置 同时访问http777端口 又能访问https7777端口
时间: 2024-09-19 21:16:28 浏览: 55
在Nginx中,由于同一个端口通常只能监听一个协议(HTTP或HTTPS),要实现同时访问HTTP和HTTPS,你不能在同一端口上直接做到这一点。但是可以通过配置来实现间接的重定向:
1. **HTTP到HTTPS的重定向**[^1]:
```nginx
server {
listen 777;
if ($scheme = http) {
return 301 https://$host:7777$request_uri; # HTTP请求会被重定向到HTTPS
}
# 如果请求是HTTPS,继续正常处理
server_name localhost;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 7777 ssl; # 正常处理HTTPS请求
server_name localhost;
error_page 497 https://$host:$server_port$request_uri; # 错误处理HTTP重定向过来的请求
}
```
这里,HTTP请求会被重定向到HTTPS,而HTTPS请求则不受影响。
2. **HTTPS端口的配置**[^2] (如果必要的话,独立配置HTTPS):
对于HTTPS(通常是默认的443端口)的配置保持不变,仅用于处理HTTPS流量。
请注意,这仍然意味着客户端实际连接的是HTTPS端口(7777),而不是HTTP端口(777)。如果你希望客户端直接连接HTTP,可能需要部署一个代理服务器来管理这种混合模式。
阅读全文