以下是我的 NGINX 配置。我的网站部署在 AWS EC2 实例上。我已检查防火墙设置,端口 443 已开放供公众访问。
我能够从 访问我的网站http://example.com
。但是我无法从 访问该网站https://example.com
。
如果我将设置从 更改listen 443;
为listen 443 ssl;
,则重新启动 NGINX 服务时会收到错误。
我已从 AWS 证书管理器获得 SSL 证书。
配置文件:
server {
listen 80;
listen [::]:80;
listen 443;
# listen 443 ssl;
root /opt/bitnami/apps/my_website;
index index.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
编辑:
nginx version: nginx/1.16.1
我尝试了命令sudo nginx -t
回复:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
编辑 2:添加更多细节:前面提到的配置文件位于/etc/nginx/sites-available/example.com
nginx.conf
以下是位于的文件的代码/etc/nginx/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
# include /etc/nginx/sites-enabled/*.*;
#include /etc/nginx/sites-available/*;
}
conf.d
位于的代码/etc/nginx/conf.d
../
./
default.conf
答案1
1) 检查当前在负载均衡器中配置的监听器,并在“监听器选项卡”中为 HTTPS 协议分配适当的 SSL 证书。
2)检查负载均衡器安全组。
3)检查EC2实例安全组。
服务器 {
听80;
服务器名称www.example.com;
根/路径/到/web/dir;
索引 index.html index.htm;
proxy_set_header X-Forwarded-Proto $scheme;
如果($http_x_forwarded_proto!='https'){
return 301 https://$host$request_uri;
}
}