前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >关于反向代理的两种实践方式

关于反向代理的两种实践方式

作者头像
乐心湖
发布2021-01-18 14:58:54
发布2021-01-18 14:58:54
1.1K00
代码可运行
举报
文章被收录于专栏:MyTechnologyMyTechnology
运行总次数:0
代码可运行

如果对反向代理不明觉厉的话,可以看一下我之前写过的Nginx笔记

Nginx 进行反向代理

安装 Nginx

代码语言:javascript
代码运行次数:0
运行
复制
# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 安装 Nginx
sudo yum install -y nginx

# 启动 Nginx
sudo systemctl start nginx.service

# 设置开机自启 Nginx
sudo systemctl enable nginx.service

配置 Nginx

配置文件一般以 nginx.conf 命名,最简单的配置如下

代码语言:javascript
代码运行次数:0
运行
复制
server {
    listen 80;

    server_name example.com www.example.com;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://127.0.0.1:3000/;
    }
}

  • server_nameexample.com www.example.com 修改为自己的域名。
  • proxy_passhttp://127.0.0.1:3000/ 修改为已经部署的服务
代码语言:javascript
代码运行次数:0
运行
复制
# 检查配置是否有误
sudo nginx -t

# 重载 Nginx 配置
sudo nginx -s reload

配置 SSL 证书

该操作的表面现象就是 将 HTTP 换成 HTTPS 协议,具体请学习计算机网络 注意:需要在防火墙开启443端口 下面的代码为自动申请免费的SSL证书,如果你自己准备了SSL证书,请查看相关证书提供的教程。

代码语言:javascript
代码运行次数:0
运行
复制
# 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python2-certbot-nginx -y

# 执行配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx

# 自动续约
sudo certbot renew --dry-run

到这里,关于 Nginx 的配置也就完成了,你可以访问一下自己的域名查看效果。

Caddy 进行反向代理

Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书,这两年非常火的一个 HTTP Server 有人说 Caddy 在性能比不上 Nginx,我不知道,但是在 上手难度/配置难度 确实更加友好。 Caddy支持 自动签订 Let’s Encrypt SSL 证书,只需要提供一个邮箱,他会自己申请、配置和续约 SSL证书。(不用再做过多配置)

安装Caddy

代码语言:javascript
代码运行次数:0
运行
复制
# 安装 Caddy 软件包
yum install caddy -y

配置 Caddy

代码语言:javascript
代码运行次数:0
运行
复制
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf
代码语言:javascript
代码运行次数:0
运行
复制
https://www.simple.com {
    gzip
        tls xxxx@xxx.xx
        proxy / localhost:port {
        transparent
    }
}
  1. https://www.simple.com 改为自己的域名。
  2. tls 后面的 xxxx@xxx.xx 改为自己的邮箱地址,这是用于自动申请 SSL 证书用的。需要注意的是,不需要你自己配置 SSL 证书,而且会自动帮你续签。
  3. localhost:port 请将 port 修改为 服务 的运行端口

修改完成之后启动 Caddy 服务即可。

代码语言:javascript
代码运行次数:0
运行
复制
# 开启自启 Caddy 服务
systemctl enable caddy

# 启动 Caddy
service caddy start

# 停止运行 Caddy
service caddy stop

# 重启 Caddy
service caddy restart

# 查看 Caddy 运行状态
service caddy status

如果 Caddy 启动出现如 [/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service' 等问题 请使用 yum update -y 更新系统。 然后再使用 service caddy restart 重启,目前已知 CentOS 7.3 会出现该问题。

配置多网址重定向到主网址,比如访问 simple.com 跳转到 www.simple.com

代码语言:javascript
代码运行次数:0
运行
复制
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

我们在原有的基础上添加以下配置

代码语言:javascript
代码运行次数:0
运行
复制
https://simple.com {
    redir https://www.simple.com{url}
}

https://simple.comhttps://www.simple.com{url} 修改为自己需要的网址就行了,比如我要求访问 xn2001.com 跳转到 www.xn2001.com

代码语言:javascript
代码运行次数:0
运行
复制
https://xn2001.com {
    redir https://www.xn2001.com{url}
}

https://www.xn2001.com {
    gzip
        tls zxh@xn2001.com
        proxy / localhost:3000 {
        transparent
    }
}

最后我们重启 Caddy 即可。

关于 Caddy 反向代理的配置也就完成了,现在你可以访问一下自己的域名测试效果。


版权属于:乐心湖's Blog

本文链接:https://cloud.tencent.com/developer/article/1774955

声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nginx 进行反向代理
    • 安装 Nginx
    • 配置 Nginx
    • 配置 SSL 证书
  • Caddy 进行反向代理
    • 安装Caddy
    • 配置 Caddy
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档