【备忘】nginx指定端口只允许内网访问+tcping安装测试

背景:

有些时候我们有多个服务器AB,它们都在阿里云同一个内网中,我们需要只把A服务对外开放,但是有业务在B中,并不对外访问,只让A用制定端口从内网访问,所以需要做个配置,支持A从内网访问B服务。需要注意的是,在服务器所在的服务商控制台确认你的端口没有对外开放。

思路:

先在B服务器Nginx中增加配置server模块,监听一个端口,其它配置跟原来的配置一样,再在内网ping自己(IP+端口,如:tcping 127.0.0.1 8080),然后在外网A服务器ping B( IP+端口,如:tcping 41.98.166.111 8080)。

Nginx配置(B):

# only game server in
server {
        # 这里删除了https 443监听,并监听新的端口
        listen       8080;
        root  /home/html/zc_game_admin/public;
        # 这里删除了域名(别名)配置
        index index.php index.html;
        client_max_body_size 10M;

        location / {
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=/$1  last;
                break;
            }
        }

location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分
    root /home/html/zc_game_admin/public;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
    fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量
    include        fastcgi_params;
}

重启Nginx:

#检测配置
nginx -t
# 平滑加载
nginx -s reload

查看端口是否被监听:

netstat -anop | grep 8080

是否安装ping工具:

which tcping

安装tcping:

yum install tcping -y

执行ping:

tcping 41.98.166.111 8080

注意:外网ping的时候一直没返回结果表示ping不通,否则会返回连通信息

END

おすすめ

転載: blog.csdn.net/qq_15941409/article/details/119639654