ps:每次修改配置后,需要重启 Nginx。
命令:systemctl restart nginx。
Nginx 的配置文件:/etc/nginx/nginx.conf。
1.准备SSL证书
在域名备案的前提下,我们需要购买 SSL 证书。
一般情况下,购买免费版即可。
①什么是SSL证书
②准备过程
- 进入阿里云控制台,购买免费版 SSL 证书。
- 然后在签发后下载 Nginx,服务器类型的证书并上传到服务器。
2.具体配置
①强制HTTPS(可选)
- 把 HTTP 的域名请求转成 HTTPS。
server { listen 80; server_name a.com; # 使用证书绑定的域名替换localhost return 301 https://$server_name$request_uri; # 返回301状态码进行跳转被Google认为是将网站地址由HTTP迁移到HTTPS的最佳方法 }复制代码
②开启HTTPS
server { listen 443 ssl; # 监听433端口 server_name a.com; # 证书绑定的域名 ssl on; ssl_certificate /usr/local/javaweb/cert/2557101_a.com.pem; # 证书的文件名 ssl_certificate_key /usr/local/javaweb/cert/2557101_a.com.key; # 证书的密钥文件名 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8080; # 对应tomcat的端口号 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_redirect off; proxy_connect_timeout 240; proxy_send_timeout 240; proxy_read_timeout 240; } }复制代码
- 配置成功:
3.工作原理
浏览器发送的请求是发送到 Nginx 的,Nginx 作为代理服务器再转发到 Tomcat,浏览器和 Nginx 之间以 HTTPS 协议传输数据,而 Nginx 和 Tomcat 之间通过 proxy_pass 以 HTTP 协议传输数据。
Nginx 是中间的代理服务器。