location重定向和nginx代理

学习提速专享!AI工具全家桶免费用 限时购周边加赠Coding Plan Lite,解锁20+主流AI工具,写代码、查资料快人一步! 阅读详情

1 location重定向

1.1 概述

重定向:就是输入的网站之后会跳转到设定的目标网址。

使用场景

1、更换域名

2、特殊情况,比如页面需要维护,但是不想中断服务,可以实现url的跳转,访问正常的服务器。

3、防盗链

1.2 rewrite跳转

rewrite:使用nginx提供的全局变量或者是自定义设置的变量,结合正则表达式和标志位实现url/uri重定向。

  • 前提:编译安装时需配置有ngx_http_rewrite_module 支持url重定向

    支持条件判断:if语句(没有else)

  • 语法配置:

rewrite 正则表达式 跳转后的内容 标志位
  • 标志位的类型:

    • permanent:返回码是301,永久重定向

    • redirect:返回码302,临时重定向

    • break:跳转时不会改变url

      break是按照location的规则进行匹配的,匹配到即终止。返回码是200,不属于3**开头的重定向范围之内。

    • last:本条规则匹配完毕之后,继续向下匹配新的location规则

      last一旦陷入死循环,内部循环10次就会停止,然后报错500。

    breaklast没有跳转的返回码,属于匹配location的机制

  • 500(内部服务器错误)排错:

    ​ 一、服务器故障

    ​ 二、防火墙屏蔽

    ​ 三、应用的端口没有启动

    ​ 1、配置文件写错了

    ​ 2、有其他应用占用了本服务的端口

    ​ 3、服务器资源不够,应用无法启动

    ​ 4、磁盘空间不足

    ​ 四、last匹配机制导致陷入死循环,10次之后就会报错500

    ​ 五、检查网络

1.3 用例

在这里插入图片描述

rewrite /test/(.*)/xy104/$1 redirect;
  • (.*):正则表达式匹配的内容进行捕获

  • $1:前面正则表达式捕获的内容

    /usr/local/nginx/html/test/index.html --------------> /usr/local/nginx/html/xy104/index.html

  • 301和302:

    • 301永久重定向:永久性的变更url,搜索引擎的排名和权重会转移到新的url,客户端会保留新的url。
    • 302临时重定向:短期的url变更,一般用在维护时,搜索引擎的排名和权重不会转移到新的url。客户端会继续访问原始的url。

1.4 实验

1.4.1 基于域名的跳转

http://www.xy105.com --------------> http://www.xy104.com

vim /usr/local/nginx/conf/nginx.conf

server {
    listen 80;
    server_name www.xy105.com;
    charset utf-8;

    #access_log logs/host.access.log main;

    location / {
        if ($host = 'www.xy105.com') {
            rewrite ^/(.*)$ http://www.xy104.com/$1 permanent;
        }
        root html;
        index index.html index.htm;
    }
}

nginx -t
systemctl restart nginx.service

vim /etc/hosts
# 本地添加ip域名映射
192.168.159.210 www.xy105.com www.xy104.com

在这里插入图片描述

rewrite ^/(.*)$ http://www.xy104.com/$1 permanent;

匹配$host的路径,即将http://www.xy105.com/(.*) 重定向至http://www.xy104.com/$1

1.4.2 基于ip的跳转

192.168.159.210服务器的网页正在维护,只有本机可以访问,其他主机访问统一显示正在维护中

vim /usr/local/nginx/conf/nginx.conf

server {
    listen       80;
    server_name  www.xy105.com;
    charset      utf-8;

    #access_log  logs/host.access.log  main;

    set $rewrite true;
    #set 设置变量的值,$rewrite的值设置布尔类型的true
    if ($remote_addr = '192.168.159.210') {
    #$remote_addr获取客户端请求的ip地址
        set $rewrite false;
        #重新定义rewrite的值是false,不进行重定向
    }

    if ($rewrite = true) {
        rewrite (.+) /error.html;
        #非192.168.159.210的ip地址,统一跳转到/error.html的页面内容
    }

    location = /error.html {
        root   html;
    }

    location / {
        root   html;
        index  index.html index.htm;
    }
}

echo "正在维护中" > html/error.html
echo "testing" > html/index.html 
systemctl restart nginx.service

在这里插入图片描述

1.4.3 基于后缀名的跳转

http://www.xy105.com/test1/index.php
http://www.xy104.com

vim /usr/local/nginx/conf/nginx.conf

server {
    listen 80;
    server_name www.xy105.com;

    charset utf-8;

    #access_log logs/host.access.log main;

    location ~* \.php$ {
        rewrite ^/(.*)(\.php)$ http://www.xy104.com;
        root html;
        index index.html;
    }
}

在这里插入图片描述

2 nginx的代理

常见的代理有VPN

在内网环境中,只有特定的ip地址才可能访问内网的服务(ssh,网页):堡垒机(跳板机)

nginx代理

  • 正向代理(七层代理)

    • 正向代理的原理:访问一个代理的地址--------------> 目标访问的网页
  • 反向代理(四层代理、七层代理)

    • 四层(传输层):ip+端口
    • 七层(应用层):http协议

四层代理和七层代理之间的区别:

  • 四层代理是基于tcp/ip协议层的代理转发方式,只是基于ip+端口号的形式实现代理。四层代理无法获取http请求中的url信息,只是对数据包进行转发。

    • 四层转发数据包,是由内核进行转发,速度更快。
  • 七层代理是通过http协议进行代理转发的方式

    • 处理http的请求和响应,当收到http请求之后,根据代理的方式,把http请求转发到指定的服务器。

    • 可以对http请求进行深入的分析和处理的。可以对请求内容做路由,流量控制,可以内容过滤等等。

    • 七层代理是由应用层处理,用户态来处理,速度相对较慢,但是更安全,更可靠

同时能做四层代理和七层代理的:nginxHaproxy

LVS:只能做四层转发

2.1 nginx内置变量

  • $uri:可以获取客户端请求的地址,不包含主机和查询的参数

  • $request_uri:获取客户端的请求地址,包含主机和查询参数

  • $host:请求的主机名,客户端----发送请求的url地址

  • $http_user_agent:获取客户端请求的浏览器和操作系统

  • $remote_addr:客户端的ip地址(可以隐藏)

  • $remote_port:客户端请求的端口

  • $server_addr:可以查询到服务端的ip地址

  • $server_port:服务端的端口号

  • $request_method:获取客户端的请求方式,get/post

  • $scheme:获取请求的协议 http协议 https

  • $request_filename:获取客户端请求的文件名

  • $document_root:当前请求的根目录

nginx在配置location匹配时,会使用两个获取头部的内置变量:

  • X-Real-IP:直接向服务端发送客户端访问的真实ip地址

    proxy_set_header X-Real-IP $remote_addr;
    
  • X-Forwarded-For:传递完整的代理链,只要数据包经过代理,都会被传送nginx,记录所有的代理地址和客户端的真实ip。

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    

实验:查看nginx内置变量

location / {
    root html;
    index index.html index.htm;
    default_type text/plain;
    return 200 "test1:$uri\ntest2:$request_uri\ntest3:$host\ntest4:$http_user_agent\ntest5:$remote_addr\ntest6:$remote_port\ntest7:$server_addr\ntest8:$server_port\ntest9:$request_method\ntest10:$scheme\ntest11:$request_filename\ntest12:$document_root";
}

2.2 正向代理

2.2.1 固定正向代理

mkdir /usr/local/nginx/conf.d
vim /usr/local/nginx/conf/nginx.conf

http {
    include mime.types;
    default_type application/octet-stream;
    include /usr/local/nginx/conf.d/*.conf;
    #添加了这一段之后,可以在conf.d这个目录里面,配置多个conf文件,也可以有其他的配置文件,作为服务的配置文件
}

#因为是写在主配置文件nginx.conf的http模块中,所以直接写server模块
server {
	listen 8888;
	server_name localhost;
	resolver 218.2.135.1 valid=300 ipv6=off;
	#设置dns的解析地址,解析的缓存时间是300秒,每隔300秒重新解析一次
	resolver_timeout 3s;
	#设置解析服务的超时3秒

	proxy_read_timeout 30s;
	#设置代理服务器读取的超时时间
	proxy_send_timeout 30s;
	#代理服务器向后端服务器发送数据的超时时间
	proxy_connect_timeout 30s;
	#代理服务器和后端服务器连接的超时时间

	#固定代理地址
	set $url "www.baidu.com";
	location / {
		proxy_pass http://$url;
		#请求转发的语句 只要你访问nginx 192.168.233.61------->> www.baidu.com ip+端口 url:8080

		#正向代理的缓存配置
		proxy_buffers 256 4k;
		#设置后端缓存影响的缓冲区为256个,每个大小为4k。
		proxy_max_temp_file_size 0;
		#nginx不保存响应数据的临时文件,防止文件过多,占用硬盘空间
		proxy_cache_valid 200 302 1m;
		#针对响应码是200和302,缓存的有效期是1分钟
		proxy_cache_valid 301 1h;
		#针对响应码是301,缓存的有效期是1小时
		proxy_cache_valid any 1m;
		#除了200,301,302以外,其他的响应码都缓存1分钟
	}
}

2.2.2 自动代理

vim /usr/local/nginx/conf.d/auto_proxy.conf
server {
	listen 8889;
	location / {
    	proxy_pass $scheme://$http_host$request_uri;
   		#请求代理的地址自动设置  自动选择协议 http https $http_host 目标主机 $request_uri包含完整的请求的路径

    	proxy_set_header Host $http_host;
    	#在请求头当中传递客户端的host信息

    	proxy_set_header X-Real-IP $remote_addr;
    	#设置客户端的请求当中包含真实的ip地址

    	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	#传递客户端经过的代理地址

    	proxy_set_header X-Forwarded-Proto $scheme;
    	#传递客户端的请求的协议信息http https

    	proxy_set_header X-Forwarded-Host $host;
    	#传递客户端的主机名(IP地址)
   
   		proxy_set_header X-Forwarded-Port $server_port;
		#传递给服务端,客户端请求服务端的端口

		resolver 218.2.135.1;
		#设置dns地址

		resolver_timeout 10s;
		proxy_buffers 256 4k;
		proxy_max_temp_file_size 0;
		proxy_cache_valid 200 302 1m;		
		proxy_cache_valid 301 1h;		
		proxy_cache_valid any 1m;
	}		
}

curl -x http://192.168.159.210:8889 http://www.sina.com
#自动代理只能通过命令行的命令实现

2.3 反向代理

2.3.1 负载均衡的算法

  • 轮询:round robin(rr)负载均衡的默认算法,请求轮流分配给后端服务器。

    轮询算法适用于后端服务器处理能力相近的情况,默认的算法,可以不加。

  • 加权轮询:weight round robin 轮询的升级版,给每个后端服务器赋予不同的权重。

    处理能力更强的服务器设置更高的权重。处理能力的低的,设置低权重。

    高峰时间可以通过这个方法进行流量的优化。适用于服务器处理能力差异比较大的情况。

  • ip_Hash:当访问后端服务器,根据客户端的ip地址,使用hash算法计算出ip地址的hash值,然后再把请求发送到相应的后端服务器。

    如果客户端访问的ip地址相同,通过hash算法,再一次的请求会被分配到上一次访问的服务器。保证会话的稳定。

    负载均衡的会话保持通过ip_hash实现。会话保持到期之后,会话中断,重新请求会重新计算hash值。

  • 最小连接数:最少连接数的算法可以将请求发送到当前连接比较少的后端服务器。(通常配合加权轮询一块使用)

    这种算法适用后端服务器处理任务耗时不同的情况,可以有效的避免所有的请求集中在处理能力更强的后端服务器上。

  • URL_HASH:根据请求当中url地址来计算hash值,如果客户端请求的url请求相同,客户端的请求会被分配到同一个服务器上。

    如果后台服务器的数量发生变化,会影响结果。

2.3.2 负载均衡的特点

  • 根据算法把请求分发到不同的服务器。
  • 客户端访问的是代理地址,响应也是代理服务器响应。
  • 客户端并不了解后端服务器的情况。
  • 可以提高安全性,后端服务器是隐藏的。
  • 负载均衡是有缓存的,可以直接访问缓存,提高响应速度。

2.3.3 负载均衡的语法

实验架构如下:

nginx1—192.168.159.200—代理服务器

nginx2—192.168.159.210—后端服务器1

nginx3—192.168.159.220—后端服务器2

客户端:浏览器

配置流量分发,主要是依靠代理服务器完成的,主要配置在代理服务器完成,配置算法。

2.3.3.1 七层代理

upstream:模块仅支持http协议,用来处理http的请求和响应

语法upstream只能写在http模块当中。不能在server也不在全局。

  • 轮询
http {
    upstream kc {
        server 192.168.159.210;
        server 192.168.159.220;
    }
    server {
   		location / {
       		root   html;
       		index  index.html index.htm;
       		proxy_pass http://kc;
   		}
   	}
}
  • 加权轮询
http {
    upstream kc {
        server 192.168.159.210 weigh=100;
        server 192.168.159.220 weight=50;
    }
    server {
   		location / {
       		root   html;
       		index  index.html index.htm;
       		proxy_pass http://kc;
   		}
   	}
}
  • ip_Hash
http {
    upstream kc {
    	ip_hash;
        server 192.168.159.210;
        server 192.168.159.220;
    }
    server {
   		location / {
       		root   html;
       		index  index.html index.htm;
       		proxy_pass http://kc;
   		}
   	}
}
  • 最小连接数
http {
    upstream kc {
    	least_conn;
        server 192.168.159.210 weigh=100;
        server 192.168.159.220 weight=50;
    }
    server {
   		location / {
       		root   html;
       		index  index.html index.htm;
       		proxy_pass http://kc;
   		}
   	}
}
  • URL_HASH
http {
    upstream kc {
    	hash $request_uri consistent;
        server 192.168.159.210 weigh=100;
        server 192.168.159.220 weight=50;
    }
    server {
   		location / {
       		root   html;
       		index  index.html index.htm;
       		proxy_pass http://kc;
   		}
   	}
}
2.3.3.2 四层代理

四层代理必须在nginx安装时配置stream模块

stream:不支持http协议,仅支持tcp和udp,处理数据包的流量分发

语法四层代理需要写在全局模块当中

  • 轮询
stream {
    upstream kc {
        server 192.168.159.210:80;
        #需要写明端口号
        server 192.168.159.220:80;
    }
    server {
        listen 81;
        #需要修改端口号,否则会和http模块中的server模块监听端口冲突
        proxy_pass kc;
    }
}
  • 加权轮询
stream {
    upstream kc {
        server 192.168.159.210:80 weight=100;
        server 192.168.159.220:80 weight=50;
    }
    server {
        listen 81;
        proxy_pass kc;
    }
}
  • 最小连接数
stream {
    upstream kc {
    	least_conn;
        server 192.168.159.210:80;
        #需要写明端口号
        server 192.168.159.220:80;
    }
    server {
        listen 81;
        #需要修改端口号,否则会和http模块中的server模块监听端口冲突
        proxy_pass kc;
    }
}

ip_hash和url_hash不能在四层代理当中使用的。

nginx正向代理反向代理,匹配规则 (2)提高访问速度:一般代理服务器都设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。每个服务的权重比例,weight访问比率成正比,==通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,==如下配置后2服务的访问比率会是3服务的二倍。是Nginx负载默认的方式,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训2服务3服务。 阅读详情

相关推荐

nginx--正向代理、反向代理及负载均衡(图解+配置)

先来看张图~【再举个栗子】某同学喜欢面向搜索引擎编程,想通过百度搜索引擎查找一些学习资料,但是有些网站直接访问可能不太安全,会暴露自己的IP,同学比较苦恼,想着怎样才能使用百度搜索自己想要的学习资料,又不会暴露自己的IP在网站上呢?这时我告诉该同学,我呢手上刚好有一台代理服务器,这台代理服务器通过nginx配置了正向代理转发httphttps请求,你呢,只需要在自己的Windows本地电脑的网关配置一下这台代理服务器的IP端口号,就能正常通过代理服务器访问到百度并搜索相关的学习资料了,~代理。...

m0_67393413的博客 3258

nginx的正向代理反向代理

4.ip_hash*怎么做会话保持:ip_hash根据算法计算客户端的ip地址的hash值,然后将请求转发到相应的服务器,在第一次访问网址之时,就会计算出这个hash值,会把请求分到一个服务器,但是下一次客户端如果使用相同的ip地址就不再分配到其它的服务器,除非后台服务器的算法变更,或者后台的服务器数量发生了变化,这时才会更改访问的服务器,访问语法就是ip_hash;http模块配置的都是七层,七层是应用层,走的是http协议,可以对请求进行解析处理,因此七层代理走的是用户态,应用协议程序功能,;

Alone8046的博客 3351

Nginx 正向代理与反向代理:核心区别与配置方法

Nginx 的常用场景中,正向代理与反向代理是两大核心应用,但二者的作用对象、使用场景及配置逻辑存在本质差异。本文将从核心区别入手,结合实操配置案例,帮你彻底理清 Nginx 正反向代理的应用逻辑,快速落地技术方案。Nginx 正向代理聚焦 “客户端侧”,解决 “客户端如何访问目标服务” 的问题;反向代理聚焦 “服务端侧”,解决 “客户端如何高效、安全访问后端集群” 的问题。二者核心配置逻辑围绕 “代理对象” 展开,正向代理需配置 DNS 解析与客户端权限,反向代理需配置后端集群与负载均衡。

2501_94155965的博客 1298

运维篇—几句话搞明白nginx正向反向代理的区别

彻底搞明白什么是正向反向代理

shang_0122的博客 1万+

location重定向nginx的正向代理反向代理

配置域名映射。

TianyaOAO的博客 567

location重定向

重定向:就是输入的网站之后会跳转到设定的目标地址 rewrite:使用nginx提供的全局变量或者是自己设置的变量,集合正则表达式标志位实现url/uri重定向www.baidu.com ·················》www.sina.com www.baidu.com/test1 ··············》www.sina.com/test2rewrite跳转: 1、nginx http rewrite_module:2、语法配置: rewrite正则表达式 跳转后的内容 标志位标志位的类

PzZzang2的博客 1085

location重定向代理

nginx当中,匹配的对象一般是URI来匹配location匹配的分类:多个location一旦匹配其中之一,不在匹配其他location1、精确匹配 location=/{...}=: 完全相同,一个字错都匹配不到2、正则匹配 location-/{..}^- 表示普通字符的前缀匹配,如果匹配成功,不在匹配其他的location~ 区分大小写的字符匹配~* 不区分大小写进行匹配!~ 区分大小写,匹配的取非!~* 不区分大小写,匹配取非3、一般匹配 location /

2401_87896172的博客 1147

nginx重定向(rewite)

location = 完整路径 > location ^~ > location ~ location~* > location /部分起始位置 > location /

2402_84844434的博客 753

Nginx系列】前端重定向

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!指令来实现这个 URL 转换。使用 nginx 转为下面的请求。可以使用 nginx 的。

CSDN站内信: https://i.csdn.net/#/msg/chat/qyj19920704 1万+

Nginx配置重定向反向代理(转发)

Nginx配置重定向反向代理(转发)

YanWenGuang123的博客 1922

nginx(七十三)nginxLocation响应头细节探讨

nginx的rewritereturn导致301或302重定向nginxLocation响应头细节探讨。重定向Location回顾。

wzj_110的博客 3317

nginxlocation与proxy_pass指令超详细讲解及其有无斜杠( / )结尾的区别

假定服务器上有/var/www/book-store/books//var/www/book-store/books/society/这两个目录,当访问http://localhost/bookshttp://localhost/books/society时,都会返回301重定向,且重定向的地址为http://localhost/books/http://localhost/books/society/是的,你没看错,对locationsr的配置里,其最后一个字符为斜杠的特殊处理,就仅此而已了。

thlzjfefe的博客 1万+

nginx代理项目 项目内部跳转导致丢失端口

外网访问的url xxxxx:8080/demo nginx代理 server { listen 8080; server_name localhost; location /demo{ proxy_pass http://localhost:9090; } } 问题 如果你的项目里面有内部重定向到login,比如shiro,或者...

Teler的博客 2740

nginx location匹配规则

文章目录location正则匹配优先级一些常用的配置反向代理Redirect(重定向)语法防盗链根据文件类型设置过期时间禁止访问某个目录隐藏版本号的作用 https://www.cnblogs.com/jpfss/p/10232980.html location 正则匹配优先级 = 开头表示精确匹配 ^~ 表示uri以xxx开头一般是匹配路劲 ~ 开头表示区分大小写的正则匹配 ...

xinli_blog的博客 1262

Nginx跳转模块之location与rewrite

location块是server块的一个指令。作用:基于Nginx服务器接收到的请求字符串,虚拟主机名称(ip,域名)、url匹配,对特定请求进行处理。现在 Nginx 已经成为很多公司作为前端反向代理服务器的首选,在实际工作中往往会 遇到很多跳转(重写 URL)的需求。比如更换域名后需要保持旧的域名能跳转到新的域名 上某网页发生改变需要跳转到新的页面网站防盗链等等需求。如果在后端使用的 Apache 服务器,虽然也能做跳转,规则库也很强大,但是用Nginx 跳转效率会更高,这也是学习 本章的目的所在。

Tpw12qaz的博客 1922

nginx proxy_redirect指令 解决由代理服务器重定后向引起的404问题 解决通过同一个域名添加url区分多站点重定向跳转404问题

目录1.说明2.语法3.配置实例4.更多高级写法 [参考nginx官方文档](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect) 1.说明 proxy_redirect指令用于修改被代理服务器返回的响应头中的Location头域“Refresh”头域,与proxy_pass指令配合使用。 比如,Nginx服务器通过proxy_pass指令将客户端的请求地址重写为被代理服务器的地址,那么Nginx服务器返回给客户端

Aesop的博客 4755

URL重写重定向Nginx提供的强大功能,可以根据不同的URL模式对请求进行处理

URL重写:URL重写是指将用户请求的URL地址转换为服务器能够处理的URL地址。Nginx是一个高性能的Web服务器反向代理服务器,它可以通过URL重写来修改请求的URL。URL重写是指将原始的URL转换为另一个URL的过程,通常用于实现URL的美化、重定向或者隐藏真实的URL。以上配置中,当请求的URL以/old-url开头时,Nginx会将/old-url后面的部分作为参数,重写为/new-url,并将请求转发到/new-url进行处理。指定需要代理的URL路径,并设置代理的目标服务器地址。

[Blog][Domain] programb.blog.csdn.net 1186

Nginx中的location规则与rewrite重写

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式标记位实现URL重写以及重定向。比如:更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求。rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,例如 http://www.yang.com/abc/bbs/index.php?a=1&b=2 只对/abc/bbs/index.php重写。

我的博客 734

Nginx四种跳转实战总结:精通域名、URI、重定向代理

Nginx是我日常工作中不可或缺的工具。今天,我将结合实战经验,详细总结Nginx在域名配置、URI匹配、重定向代理方面的应用,并通过具体的示例代码运行结果,带大家深入理解这些功能。

m0_37643701的博客 1507
上一篇: nginx优化
下一篇: Tomcat
云计算练习生X
博客等级 码龄3年 1334粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值