谷粒商城P139集——云服务器frp内网穿透+nginx

1、腾讯云购买域名并备案以及解析

我注册的域名是第一年14元的

(1)购买域名并备案

(2)域名解析

测试:如域名为gulimall.com

则在浏览器中输入gulimall.com:9200(前提是9200端口已经开放)

2、frp服务端设置(云服务器)

(1)下载
wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz

云服务器下载linux版本注意frps的配置即可,本地下载windows版本注意frpc的配置即可

(2)解压

tar -zxvf frp_0.20.0_linux_amd64.tar.gz

(3)修改frps.ini(frp server 服务端)

bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 88
  1. “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
  2. “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 云服务器ip:7500 查看frp服务运行信息。
  3. “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
  4. “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
  5. “vhost_http_port":注意我们通过云服务器ip : vhost_http_port去访问本地主机被穿透的端口

(4)测试运行frpc服务端

命令:

./frps -c frps.ini

成功:

此时访问 云服务器ip : 7500 并使用自己设置的用户名密码登录,即可看到仪表板界面

(5)设置frpc后台运行

nohup ./frps -c frps.ini &

成功:

此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序

3、frp客户端设置(本地主机)

(1)修改frpc.ini

[common]
server_addr = xxxxx #公网ip地址
server_port = 7000 #与服务端bind_port对应的端口号
token = 123456
[http]
type = http
local_ip = 127.0.0.1 #本机地址
#【本机想要暴露的地址】
#对于谷粒商城来说,我们要把这个设置为网关的端口号
local_port = 88 

custom_domains = xxxxx #公网ip地址
#【注意】雷神这一步是在nginx中完成的
# 设置请求的host字段,以便网关断言
host_header_rewrite = gulimall.com 

(2)运行测试

frpc.exe -c frpc.ini

(3)自启动设置

1.下载软件NSSM:NSSM - the Non-Sucking Service Manager

2.解压后打开cmd进入对应的目录:cd d:D:\nssm-2.24-101-g897c7ad\win64

3.执行指令:

.\nssm.exe install

4.填写对应的信息

4、nginx设置

我是直接修改conf.d文件夹下default.conf文件

server {
  listen       80;
#【xxxx是你申请的域名】
  server_name xxxx;
  
  #charset koi8-r;
  #access_log  /var/log/nginx/log/host.access.log  main;

  location / {
  #        root   /usr/share/nginx/html;
#【xxxx是你云服务的ip地址】
  proxy_pass http://xxxxx:88;
  }
}

最后访问域名可直接拿到商城主页

5、总结

  1. 输入域名,域名解析为云服务器ip地址
  2. nginx监听到server_name为域名的请求,将其转发给http://云服务器ip:88;
  3. frps(云服务器上的服务端)监听到88端口(对应于frps.ini里的vhost_http_port),frps通过绑定的端口号(bind_port)与本地主机连接。
  4. 作为frpc的本地主机通过(server_port)和(server_addr)与有frps的云服务器连接,它将会把来自于云服务器的请求转发给(local_ip : local_port)并且为之设置host字段(host_header_rewrite = gulimall.com
  5. 最终后端项目收到了如http://localhost:88的请求,网关对host字段进行断言,成功后负载均衡给gulimall-product服务,最终响应商城主页。

6、其他参考文章

1、FRP内网穿透--实现公网ip远程访问内网8080端口_尬维的博客-CSDN博客_frp 端口

2、使用frp进行内网穿透 - 少数派

3、Frp内网穿透详解_Ays_Freeer的博客-CSDN博客_frp参数详解

4、windows守护进程工具--nssm详解 - 与f - 博客园

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值