使用docker搭建frp在云服务器上调用本地服务器的代码

前言:最近生成图片的ai很火,国内也有不少这样的网站,但是一般都需要钱,这时候自己想用,又不想花钱,就只能在本地服务器搭建一个ai生成图片的服务,再通过内网穿透,从公网访问到这个本地搭建的服务。

获取frp的压缩包

访问下面这个网页Releases · fatedier/frp (github.com),这里下载最新版的v0.50.0的包。

可以看到这里有很多版,我服务器的CPU是x86_64架构(linux可以使用uname -a 这个命令查看CPU架构),选择的frpServer是frp_0.50.0_linux_amd64.tar.gz这个版本, 客户端是Windows系统所以frpClient 是frp_0.50.0_windows_amd64.zip这个版本。

Server端部署

1.发送到服务器上

使用以下命令将服务端需要的包发到远程服务器上

scp C:\Users\admin\Downloads\frp_0.50.0_linux_amd64.tar.gz root@ip:/home/docker/frp
2.创建指定文件
#创建frps.ini文件
cd /home/docker/frp && vim frps.ini

#编写配置 [common] 也需要保留

[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# http服务需要使用
vhost_http_port = 8877
# 授权码,请改成更复杂的
# 这个token之后在客户端会用到
token = 123456
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

# frp日志配置
log_file = ./frps.log
log_level = info
log_max_days = 3              
3.创建dockerfile
vi dockerfile
​
#dockerfile
FROM ubuntu
MAINTAINER zzy <358343917@qq.com>
​
ARG VERSION=0.50.0
​
WORKDIR /tmp
​
COPY ./frp_${VERSION}_linux_amd64.tar.gz frp_${VERSION}_linux_amd64.tar.gz
RUN set -x \
    && tar -zxvf frp_${VERSION}_linux_amd64.tar.gz \
    && mv frp_${VERSION}_linux_amd64 /var/frps \
    && mkdir -p /var/frps/conf
​
COPY ./frps.ini /var/frps/conf/frps.ini
​
VOLUME /var/frps/conf
​
WORKDIR /var/frps
ENTRYPOINT ./frps -c ./conf/frps.ini

解释一下上面的意思 从 /home/docker/frp文件夹下复制frp文件到docker容器中/tmp目录下,在容器内解压该文件并且移动到/var/frps路径下,在容器内创建文件夹/var/frps/conf,将/home/docker/frp/frps.ini文件复制到容器内 /var/frps/conf/frps.ini 这个文件。挂载一个卷,容器启动时默认执行 /var/frps/frps -c /var/frps/conf/frps.ini

4.构建dockerimage
#注意 name = 名称 tag = 版本号  name:tag后面有个.  代表当前目录, 也可以修改成 /home/docker/frp
docker build -t name:tag .
#示例
docker build -t zzy/frp:0.50.0 .
5.编写docker-compose

因为要将conf目录挂载在/home/docker/frps/conf/目录下,所以首先将/home/docker/frp下的frps.ini复制到 /home/docker/frps/conf/目录下

#执行命令
mv /home/docker/frp/frps.ini /home/docker/frps/conf/
#docker-compose配置
version: '3.1'
    services:
        frp:
            image: zzy/frp:0.50.0
            container_name: frp
            volumes:
              - /home/docker/frps/conf:/var/frps/conf
            ports:
              - 7000:7000
              - 7500:7500
              - 8877:8877
            restart: always

启动

    docker-compose up -d frp

这个时候访问 ip:7500 ,输入账号密码后,应该就能看到这个页面了

如果是云服务器的话,记得开放7000,7500,8877这三个端口。

Client端部署

client就很简单了, 复制下下面的配置到frpc.ini文件中然后使用 cmd转到对应文件夹 输入 frpc.exe 启动。

[common]
server_addr = 云服务器地址
server_port = 7000
token = 123456
log_file = ./frpc.log
log_level = info

[home]
#连接方式 http
type = http
#内网服务器地址
local_ip = 127.0.0.1
#内网服务器端口
local_port = 8080
#外网HTTP端口
remote_port = 8877
#外网的域名 通过访问这个域名和端口找到这个服务
custom_domains = www.zzy1blog.cn

启动成功的话,我们登录管理页面,就能看到连接的服务了。如下:

编写本地服务测试类

@Slf4j
@Controller
@RequestMapping(value = "/test")
@ResponseBody
public class TestController {

   @GetMapping("/message")
   public void testNoneIntercept(HttpServletRequest httpServletRequest, HttpServletResponse response,String message) throws Exception {
       response.setContentType("text/event-stream");
       response.setCharacterEncoding("UTF-8");
       response.getWriter().write("来自本地服务器"+message);
  }

}

application.yaml配置

server:
  port: 8080

访问: www.zzy1blog.cn:8877/frp/servers?message=访问本地服务器

反代成功

配置nginx反代frp

nginx配置

http {
server {
    listen 80;
    #请填写绑定证书的域名
    server_name zzy1blog.cn;

    location /frp/servers {
      proxy_pass http://localhost:8877;
      proxy_set_header Host       $host;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

重启nginx容器

docker-compose stop nginx

docker-compose up -d nginx

访问 http://www.zzy1blog.cn/frp/servers?message=访问本地服务器2

搞定!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇