Loading... <div class="tip share">请注意,本文编写于 114 天前,最后修改于 31 天前,其中某些信息可能已经过时。</div> > 如果对反向代理不明觉厉的话,可以看一下我之前写过的[Nginx笔记](https://www.xn2001.com/archives/584.html) # Nginx 进行反向代理 ## 安装 Nginx ```bash # 添加 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 命名,最简单的配置如下 ```nginx 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_name`: `example.com` `www.example.com` 修改为自己的域名。 > - `proxy_pass`:`http://127.0.0.1:3000/` 修改为已经部署的服务 ```bash # 检查配置是否有误 sudo nginx -t # 重载 Nginx 配置 sudo nginx -s reload ``` ## 配置 SSL 证书 > 该操作的表面现象就是 将 HTTP 换成 HTTPS 协议,具体请学习计算机网络 > > 注意:需要在防火墙开启443端口 > > 下面的代码为自动申请免费的SSL证书,如果你自己准备了SSL证书,请查看相关证书提供的教程。 ```bash # 安装 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 ```bash # 安装 Caddy 软件包 yum install caddy -y ``` ## 配置 Caddy ```bash # 使用 vim 编辑 Caddyfile vim /etc/caddy/conf.d/Caddyfile.conf ``` ```nginx 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` 服务即可。 ```bash # 开启自启 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` ```bash # 使用 vim 编辑 Caddyfile vim /etc/caddy/conf.d/Caddyfile.conf ``` 我们在原有的基础上添加以下配置 ```nginx https://simple.com { redir https://www.simple.com{url} } ``` 将 `https://simple.com` 和 `https://www.simple.com{url}` 修改为自己需要的网址就行了,比如我要求访问 `xn2001.com` 跳转到 `www.xn2001.com` ```nginx https://xn2001.com { redir https://www.xn2001.com{url} } https://www.xn2001.com { gzip tls zxh@xn2001.com proxy / localhost:3000 { transparent } } ``` 最后我们重启 `Caddy` 即可。 关于 `Caddy` 反向代理的配置也就完成了,现在你可以访问一下自己的域名测试效果。<hr class="content-copyright" style="margin-top:50px" /><blockquote class="content-copyright" style="font-style:normal"><p class="content-copyright">版权属于:乐心湖's Blog</p><p class="content-copyright">本文链接:<a class="content-copyright" href="https://www.xn2001.com/archives/604.html">https://www.xn2001.com/archives/604.html</a></p><p class="content-copyright">声明:博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh" target="_blank" rel="nofollow noopener noopener" one-link-mark="yes">CC BY-SA 4.0 协议</a> ,转载请注明出处!</p></blockquote> 腾讯云社区邀请各位技术博主加入,福利多多噢! Last modification:February 3rd, 2021 at 04:07 pm © 允许规范转载 Support 如果觉得我的文章对你有用,请随意赞赏 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat