tips:搭建网站后,站点 -> 设置 -> 重定向 因该也可以,但我 nginx 完成后才发现,暂时没研究,以后再说。

一、准备工作

1、宝塔面板

2、nginx

3、放行 wordPress 端口,如:宝塔安全防火墙、阿里云服务器安全规则

二、配置 nginx 代理

1、宝塔面板使用推荐的安装套件(LNMP),然后网站一键部署 wordPress,打开 nginx 配置文件(宝塔在软件商店找到 nginx,点击设置有),输入以下 server 区块,这个是监听指定端口,是否符合你的域名,符合则转发网站。

server {
    listen 80; # 监听80端口
    server_name xxx.xxx.xxx; # 你的域名
    location / {
        # WordPressIP访问地址
        proxy_pass http://xxx.xxx.xxx:端口/; 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header User-Agent $http_user_agent;
    }
}
# 代理https请求
server {
    listen 443 ssl; # 监听443端口
    server_name xxx.xxx.xxx; # 你的域名
    # ssl证书地址
 
    # pem文件的路径,后面是存放ssl证书的路径
    ssl_certificate /www/server/nginx/cert/xxx.cer;
    # key文件的路径,后面是存放ssl证书密钥的路径
    ssl_certificate_key /www/server/nginx/cert/xxx.key;
 
    # # ssl验证相关配置(阿里云上面抄的,仅供参考)
 
    #缓存有效期
    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 / {
        # WordPressIP访问地址
        proxy_pass http://xxx.xxx.xxx:端口/
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header User-Agent $http_user_agent;
        # 防止https转http是图片、样式等资源出现已阻止mixed-content
        add_header Content-Security-Policy upgrade-insecure-requests;
    }
}

2、重启 nginx,nginx 配置完成,开始配置 wordPress,打开 wordPress 设置下的常规选项,找到 WordPress 地址(URL)和站点地址(URL)两个输入框,将里面的地址修改为你们的域名,如果后期无法登录,可以直接在数据库修改。

打开 wordPress 设置下的常规选项,找到 WordPress 地址(URL)和站点地址(URL)两个输入框,将里面的地址修改为你们的域名,如果后期无法登录,可以直接在数据库修改。

3、给网站添加公网 ip 访问端口

给网站添加公网 ip 访问端口

三、申请免费证书

github:说明・acmesh-official/acme.sh Wiki

使用 acme.sh 来生成 ssl 证书,免费,具体可看上方 github

步骤
1、打开 linux 终端,执行下方代码,注意后边的邮箱必须替换成你自己的,这个邮箱不能用,我试过。

curl https://get.acme.sh | sh -s email=my@example.com
2、执行以下代码验证并生成 ssl 证书 –nginx 后边的路径替换成你自己的 nginx 配置,多个域名可以用通配符如 *.xxx.xx

acme.sh --issue -d 你的域名 --nginx /etc/nginx/conf.d/example.com.conf
3、执行完后,最后几行是存放位置路径,将该路径下的.cer 文件和.key 文件复制到你自己中意的地方,但是 二 –> 1 的 server 区块里的 ssl_certificate 和 ssl_certificate_key 后的路径改为你刚才复制的路径

注意,nginx 配置 ssl 时,listen 端口 ssl 这种格式,ssl 必须加,负责无效

更多推荐