宝塔面板的 nginx 如何设置反代功能?sub_filter 指令使用方法
发布于 作者:苏南大叔 来源:程序如此灵动~nginx
有个非常好用的反向代理功能,可以作为中间第三人,连接两个世界。当然,正常情况下来说,大多数情况下,nginx
的反代功能,就是个普通的运维命令,反向代理个node
或者php
之类的程序,是最常见的运维使用方式。但是,事实上,nginx
的反代功能,也可以用于反代任何一个网站...
本文演示的两个站,都是苏南大叔的站。本次域名备案的事情,就是这两个域名交替操作备案的,完美合作。已经备案的域名newsn.com.cn
,待备案的域名newsn.net
。
宝塔面板设置
因为数据代码都在newsn.net
上面,所以,苏南大叔用的是newsn.com.cn
去代理newsn.net
。设置如图所示:
这里重点说明,以下几点:
目标URL、发送域名
目标URL
和发送域名
,这两个的组合设置,会有些匪夷所思。不能用常理去推断这两个组合。苏南大叔是这么解读的:把发送域名
替换到目标URL
中的域名部分,才是真正常理意义上,大家所熟悉的网址。所以,如果你看到目标URL
中的域名,没有证书的话,还写成https://
的话,也不用奇怪。因为目标URL
中的域名就仅仅是个解析IP的作用。
如果对方站点上也绑定了当前域名,那么请发送域名$host
,否则请指定真实的域名。注意:在目标URL
中写对应域名,是不会生效的!解释不清楚,大家仔细看。
目标URL
中的网址domain
,仅仅起到的作用是代替IP的意思。所以,直接写IP
也是可以的。而发送域名
这个才是真正的域名,不能填写错误。当然默认值$host
,就指的是面板中当前站点的域名了。
内容替换
注意:有且只有一对内容替换配置,这对儿词,在页面内可以匹配全部并匹配。这个是nginx
本身的问题,新手小白会非常迷糊。因为大家的实际需求,肯定是要替换多组词汇的,而且肯定是要每组匹配值都替换掉的。但是,这个问题上,nginx
的默认模块,就显得很无力了,只能配置一组词汇。
缓存
苏南大叔认为,还是默认启用缓存吧。不过,这个缓存与否。具体的效果,苏南大叔还没有试验出来,差别有多大。
nginx配置
配置好之后,反应到nginx
的配置文件中,就是下面这个样子的:
proxy_set_header
、sub_filter
以及 sub_filter_once
这里就是和普通的运维配置,不一样的地方了。一般的运维人员,是不会配置这2个值的。这2个值是默认的写法,但,并不是完美的写法。这里有几个说明问题:
xml
文件是默认不参与文本替换的,这个将在下面说明解决。- 文本替换,只能替换一组,这个将在下一篇文章中解决。
sub_filter_once
这个值,应该恒定设置为off
,千万不能设置为on
。因为最普遍的需求就是要替换所有文字。
proxy_cache
在宝塔面板的默认设置中,只对html|htm|png|gif|jpeg|jpg|bmp|js|css
文件设置是否缓存,并且存在一个特殊的方法,来清除掉缓存,具体见上述配置中的proxy_cache
开头的相关设置。
以/purge/
开头的链接地址,都是特殊处理,用于清楚缓存的。
总结
本文说的nginx
反代,属于最基础最简单的部分,日常运维中,总常见的情况是:nginx
的sub_filter
不生效。也就是说想替换的词没有被替换掉。这样的情况要怎么处理呢?请继续查看,苏南大叔的后续nginx
经验文章。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。