环境:
os: centos7
nginx: 1.18.0
一、nginx 的 ssl 模块安装
(一)查看 nginx 是否安装 http_ssl_module 模块
/data/nginx/usr/local/nginx/sbin/nginx -V
如果出现 configure arguments: --with-http_ssl_module, 则已安装,否则请安装ssl模块。
(二)安装http_ssl_module 模块
1. 下载nginx,并上传到服务器
2. 解压nginx
tar -zxvf nginx-1.18.0.tar.gz
3. 进入解压文件,并配置ssl
cd nginx-1.18.0
./configure --prefix=/data/nginx --with-http_ssl_module
4. 编译
使用make命令编译,不要使用make install,否则会重新安装。此时当前目录会出现 objs 文件夹,将objs文件夹中的nginx覆盖/data/nginx/sbin中的nginx
5. 查看 nginx 是否安装 http_ssl_module 模块
二、ssl证书部署
(一)获取证书
1. 域名部署
登录域名官网,申请域名的ssl证书,并下载
2. 本地IP部署
使用openssl命令,生成ssl证书,并下载。
(二)上传证书
新建ssl文件夹,将证书上传到该文件夹。
三、配置nginx.conf文件
- 进入编辑
vim /data/nginx/conf/nginx.conf
- 配置443,添加如下代码:
server {
listen 443 ssl;
server_name gqcyx.top; # 你的域名
root /home/XXX/webroot; # 项目文件存放路径
ssl_certificate /data/nginx/ssl/1_gqcyx.top_bundle.crt; # 证书路径
ssl_certificate_key /data/nginx/ssl/2_gqcyx.top.key; # 密钥路径
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /home/guanqing;
}
location /trace-trade-web {
root /home/guanqing/webroot;
}
location /trace-trade-wechat {
root /home/guanqing/webroot;
}
location /trace-trade-api {
proxy_pass http://121.5.79.77:8809/trace-trade-api;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
add_header Access-Control-Allow-Credentials true;
}
location /resources {
root /home/guanqing/webroot;
}
location /resources-proxy {
proxy_pass http://121.5.79.77/resources;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
add_header Access-Control-Allow-Credentials true;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- 配置80转发,添加如下代码:
server {
listen 80;
server_name gqcyx.top;
return 301 https://$server_name$request_uri; # 将请求转成https
}
注:需要保证443端口可用。
四、重启nginx
ok,如果上述步骤都完成了,没有问题,接下来只需要重启nginx服务即可。进入sbin目录下,输入
./nginx -t # 检查配置是否正确
./nginx -s reload # 热启动
./nginx -s stop # 关闭
./nginx # 启动
无提示信息的话,就大功告成了。