一、概述
有如下两种情况的 Nginx
端口映射:一是比如将 8001-8010 这 10 个端口映射到本机的 18001-18010 这 10 个 HTTP/HTTPS
服务上;二是反过来,比如将 10080,18001-18010 这 11 个端口映射到本机的 80,8001-8010 这 11 个HTTP/HTTPS
服务上。
当然,对于 HTTP
服务,用 iptables
也是能够实现的。但是要做同一个域名下的批量端口的 SSL
反向代理的话,最直接的方式是在 nginx.conf
中写多个 server
配置块。这样会导致 nginx.conf
的内容过多。
如果批量端口如上面描述的那样有规律可循,则可以通过 server_port
变量来简化 nginx.conf
。
二、小端口批量映射到大端口
将 8001-8010 这10 个端口映射到本机的 18001-18010 这 10 个 HTTP/HTTPS
服务上。
很容易看出是在 4 位端口号基础上加 10000 ,即左侧加 1。
1 | server { |
问题:如要要将 80 端口映射到 10080 的话,上述配置是无法实现的。如果少于4位的端口比较少,可以通过
if
条件进行判断再做处理。
三、大端口批量映射到小端口
将 10080,18001-18010 这 11 个端口映射到本机的 80,8001-8010 这 11 个HTTP/HTTPS
服务上。
很容易看出是在以 1 开头的 5 位端口号基础上减 10000 ,即去掉左侧的 1 和多余的 0 。
1 | server { |