# Nginx 反向代理
# 安装 Nginx
sudo apt-get install nginx #这里使debian系统的命令安装nginx
whereis nginx #查找nginx目录,一般在/etc/nginx
cd /etc/nginx
# 修改配置
修改配置 nginx.conf
,把下面这段代码添加到 http
下
server { | |
listen 80; | |
server_name xxx.com; # 绑定的域名 | |
location / { | |
proxy_set_header X-Forwarded-For $remote_addr; | |
proxy_set_header Host $http_host; | |
proxy_pass "http://127.0.0.1:8080"; # 自定义端口号,这里转发到 8080 | |
} | |
} |
# 检查配置正确性
nginx -t
# 重启 nginx
sudo nginx -s reload
# 安装 ssl 证书
# 腾讯云下载 ssl 证书
选择 nginx 格式,下载并解压缩
# 配置 nginx
将解压得到的文件全部放到 /etc/nginx
目录下。
server { | |
listen 443 ssl; | |
server_tokens off; | |
keepalive_timeout 5; | |
server_name songlinlife.top; # 修改为证书域名 | |
ssl_certificate songlinlife.top_bundle.crt; # 修改为 crt 文件 | |
ssl_certificate_key songlinlife.top.key; # 修改为 key 文件 | |
ssl_session_timeout 5m; | |
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; | |
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #可按照此加密套件配置,写法遵循 openssl 标准 | |
ssl_prefer_server_ciphers on; | |
location / { | |
proxy_set_header X-Forwarded-For $remote_addr; | |
proxy_set_header Host $http_host; | |
proxy_pass "http://127.0.0.1:4000"; | |
} | |
} |
重启 nginx
# github action
github 开一个 repo,设置权限为 private,在 github action 处创建一个新的 action:
把下面的代码添加覆盖 yaml 文件:
name: Deploy site files
on:
push:
branches:
- master # 只在master上push触发部署
paths-ignore: # 下列文件的变更不触发部署,可以自行添加
- README.md
- LICENSE
jobs:
deploy:
runs-on: ubuntu-latest # 使用ubuntu系统镜像运行自动化脚本
steps: # 自动化步骤
- uses: actions/checkout@v2 # 第一步,下载代码仓库
# 使用 node:10
- name: use Node.js 10
uses: actions/setup-node@v1
with:
node-version: 10
# npm install
- name: npm install
run: |
npm install -g hexo-cli
npm install
env:
CI: true
# build
- name: hexo build
run: |
hexo clean
hexo generate
env:
CI: true
- uses: srt32/git-actions@v0.0.3
with:
args: git submodule update --init --recursive
- name: Deploy to Server # 第二步,rsync推文件
uses: AEnterprise/rsync-deploy@v1.0 # 使用别人包装好的步骤镜像
env:
DEPLOY_KEY: ${{ secrets.ACCESS_TOKEN }} # 引用配置,SSH私钥
ARGS: -avz --delete --exclude='*.pyc' # rsync参数,排除.pyc文件
SERVER_PORT: "22" # SSH端口
FOLDER: ./ # 要推送的文件夹,路径相对于代码仓库的根目录
SERVER_IP: ${{ secrets.REMOTE_HOST }} # 引用配置,服务器的host名(IP或者域名domain.com)
USERNAME: ${{ secrets.REMOTE_USER }} # 引用配置,服务器登录名
SERVER_DESTINATION: /home/ubuntu/blog/ # 部署到目标文件夹
注意对于下面这些配置,这些是这个 action 的环境变量,需要在 setting 里面自己设置:
# 域名解析
由于在国内开个服务器,因为没有域名备案导致没法用:
有空可以搞个备案,但是现在嘛,emmmm 还是就这样吧
# 总结
有钱开个外网的服务器。。。。