ngnix SSL 配置适用于 http,但不适用于 https

ngnix SSL 配置适用于 http,但不适用于 https

我在 AWS ELB 后面运行 nginx(nginx/1.10.0) 作为我的网络服务器,使用 drupal 7 并使用 php7.1 问题是 http://网址 工作正常,但同一网站https://网址仅提供页面的 https 组件,而不提供 css 等非 https 组件。

并且 SSL 终止正在 AWS ELB 端发生

这是我的 nginx 配置

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  listen 443 ssl http2 default_server;
  listen [::]:443 ssl http2 default_server;

  server_name site_url;


  root /var/www/html/smb;
  index index.php index.html index.htm ;


  error_page 404 = @smb;

  location @smb {
     rewrite ^(.*)$ /index.php?q=$1 last;


  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
  }

  location ~ /\.ht {
    deny all;
  }
}

答案1

如果 ssl 终止发生在 AWS ELB 端,为什么还要使用端口 443?这是没有必要的,您可以只使用端口 80 来处理所有请求,因为您不需要任何 SSL。

并作为@HBruijn说,你的应用程序有问题,而不是 nginx。看起来 css 等的 URL 中存在带 http:// 的硬编码。你应该检查代码并修复它。

相关内容