抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

从原理上讲,使用的是docker网桥在容器间进行数据转发。

安装好frpc之后,代理一个端口,并在配置的local_ip里填写另一个容器的ip地址

1
2
3
4
type = tcp 
local_ip = 172.17.0.3
local_port = 80
remote_port = 32171

然后启动frpc,映射一个外网端口

script
1
docker run -d --name frpc -v /data/frp/frpc.ini:/frp/frpc.ini -p 32171:32171 frpc:0.30.0

从原理上,不需要实际对被代理的172.17.0.3:80做端口外网映射。因为frpc使用的是docker网桥,将访问frpc的外网流量反向代理过去。

查看可用的 Nginx 版本

访问 Nginx 镜像库地址: https://hub.docker.com/_/nginx?tab=tags。
可以通过 Sort by 查看其他版本的 Nginx,默认是最新版本 nginx:latest。

此外,我们还可以用 docker search nginx 命令来查看可用版本:

script
1
2
3
4
5
6
7
8
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3260 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 674 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 207 [OK]
million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 67 [OK]
maxexcloo/nginx-php Docker framework container with Nginx and ... 57 [OK]
...

取最新版的 Nginx 镜像

script
1
docker pull nginx:latest

1
2
3
4
# 静态资源发布
location ^~ /web-resource/ {
root /data/;
}

/web-resource/videos/xxxx.mp4 会到 /data/web-resource/videos/xxxx.mp4 里去找是否有这个文件。也就是root地址会拼接上网络地址。

来源

一、语法规则

1
location [=|~|~*|^~] /uri/ { … }
符号 含义
= 开头表示精确匹配
^~ 开头表示 uri 以某个常规字符串开头,理解为匹配 url 路径即可。nginx 不对 url 做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
/ 通用匹配,任何请求都会匹配到

多个 location 配置的情况下匹配顺序为
首先匹配 =
其次匹配 ^~
其次是按文件中顺序的正则匹配
最后是交给 / 通用匹配
当有匹配成功时候,停止匹配,按当前匹配规则处理请求

nginx域名配置文件修改:

1
2
3
4
5
6
location / {
root html;
index index.html index.htm index index.jpg;
auth_basic 'Restricted'; # 认证名称,随意填写
auth_basic_user_file /htpasswd/passwd.db; # 认证的密码文件,需要生产。
}

搞了一下午

我的世界服务器放在windows主机里,通过centos服务器里的 nginx + frp 实现对外网的发布,很有成就感。

准备

首先,centos 服务器是一台虚拟机,位于windows主机内,之所以要这么做,就是喜欢linux稳定,开着虚拟机,乱搞不影响主机。

原理

window 上运行一台我的世界服务器端,位于本机虚拟机网卡 192.168.216.1:25565 之上。

centos 使用 frp 的 tcp 连接,连接到外网上,其配置如下,意味着,外网如果有从 32326 端口来的tcp流量,就会被代理到本机的 25565 端口上。

frpcfrpc 拷贝到 /usr/local/bin 配置拷贝到 etc里 123456789101112131415161718192021cp frpc.ini /etc/frp/frpc.ini[common]server_addr = server_port = token = user = anarckklogin_fail_exit = false...

123456789101112nginx -s stop: fast shutdownnginx -s quit: graceful shutdownnginx -s reload: changing configuration, starting new worker processes with a new configuration, ...