一、我们用的是阿里云的服务器,所以直接在管理中心生成域名对应的.pem和.key文件,放在服务器指定文件夹内,我放在cert文件夹内
二、打开/etc/nginx/nginx.conf,以下是写在http{}内
upstream test{
#内网IP:端口
server 10.51.0.235:8080;
}
server {
#监听的80端口
listen 80;
#这里添加监听443端口及文件地址
listen 443 ssl;
ssl_certificate cert/214811012130566.pem;
ssl_certificate_key cert/214811012130566.key;
#xxx.com是需要访问的域名
server_name www.xxx.com;
#这里是重定向
if ($scheme != https) {
rewrite ^/(.*) https://$server_name/$1 permanent;
}
#设定查看Nginx状态的地址
location /nginxstatus{
stub_status on;
access_log on;
auth_basic "nginxstatus";
auth_basic_user_file htpasswd;
}
#匹配以php结尾的,我们的项目是用PHP开发
location / {
index index.php;
#在这里设置一个代理,和upstream的名字一样
proxy_pass http://test;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#由于Nginx这里会把head头丢弃,所以这里需要把head转发出去。
add_header X-Accel-Redirect $sent_http_filepath;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
三、重启nginx
/usr/sbin/nginx -s reload
这时输入https://www.xxx.com后便能访问成功,输入http://www.xxx.com会重定向到https://www.xxx.com
需要注意的是,看下阿里云服务器的443端口是否开放。