NGINX 中的“listen 443”是否会自动将您从 http 重定向到 https?

GTX*_*GTX 2 nginx

我有一个简单的问题。我只是想知道我是否喜欢:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果我输入 URL http://example.com ,这会自动将我从 http 重定向到 https吗?

它对我有用,但我不确定它是否对每个人都有效,这就是我问的原因。

提前致谢。

Tim*_*Tim 8

不,通常需要这样的东西来做转发。

如果它已经在工作,其他东西可能正在做。是否安装了其他网络服务器?您是否正在使用可能正在执行此操作的 CDN?

server {
  server_name example.com;
  listen 443 ssl http2;
  // etc - main server
}   


# Forward non-www requests to www
server {
  listen       80;
  server_name  example.com www.example.com;
  access_log  /var/log/nginx/access.log main buffer=128k flush=1m if=$log_ua;
  return       301 https://www.example.com$request_uri;
}

server {
  listen 443 ssl http2;
  server_name www.example.com;

  ssl_certificate /var/lib/acme/certs/***CERT_DIRECTORY/fullchain;
  ssl_certificate_key /var/lib/acme/certs/***CERT_DIRECTORY/privkey;

  # Set up preferred protocols and ciphers. TLS1.2 is required for HTTP/2
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

  access_log  /var/log/nginx/access.log main buffer=128k flush=1m if=$log_ua;

  return 301 https://www.example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)