淘宝Tengine——易运维的高性能Nginx服务器

合集下载

淘宝技术架构简介

淘宝技术架构简介

• 价值
– 用同步的语义来实现异步的调用
ngx_lua原理
• 每个Nginx工作进程使用一个Lua VM,工 作进程内所有协程共享VM • 每个外部请求都由一个Lua协程处理,协程 之间数据隔离 • Lua代码调用I/O操作接口时,若该操作无 法立刻完成,则打断相关协程的运行并保 护上下文数据 • I/O操作完成时还原相关协程上下文数据并 继续运行
系统过载保护
• 判断依据
– 系统的loadavg – 内存使用(swap的比率)
• sysgurad模块
sysguard on; sysguard_load load=4 action=/high_load.html; sysguard_mem swapratio=10% action=/mem_high.html
– 防hashdos攻击 – 防SQL注入 – 防XSS
• 标准Nginx无输入体过滤器机制的问题 • 例子(防hashdos攻击)
– 如果所有POST内容都在内存中,占用内存过大 – 否则性能不高,内容可能被buffer到磁盘 – /2012/01/amechanism-to-help-write-web-applicationfirewalls-for-nginx/
ngx_lua原理
代码示例
location /http_client { proxy_pass $arg_url; } location /web_iconv { content_by_lua ' local from, to, url = ngx.var.arg_f, ngx.var.arg_t, ngx.var.arg_u local iconv = require "iconv" local cd = iconv.new(to or "utf8", from or "gbk") local res = ngx.location.capture("/http_client?url=" .. url) if res.status == 200 then local ostr, err = cd:iconv(res.body) ngx.print(ostr) else ngx.say("error occured: rc=" .. res.status) end '; }

kangle

kangle
kangle
高性能web服务器和反向代理服务器软件
01 基本定义
03 运行环境 05 应用灵活
目录
02 开发背景 04 主要特点 06 主要特性
目录
07 常见问题
09 安装方式有
08 软件更新日志
kangle(kangle web服务器)是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理 服务器软件,支持asp、net、java。
应用灵活
kangle可在多方面进行应用。 作web服务器、 反向代理服务器、 虚拟化其它web服务器(如虚拟化tomcat,作java空间)、 多节点cdn等,非常灵活。
主要特性
.kangle是一款集成asp/asp·net的易操作管理的高性能web服务器和反向代理服务器软件; .可以设置每个虚拟主机独立进程,独立身份运行(虚拟主机商的最爱,安全的实现虚拟主机功能); .独有的命令扩展(虚拟化其它web服务器,使其它web服务器亦具有前述优点,如tomcat,这样就能安全的提供 java虚拟主机了); .kangle采用基于事件驱动(epoll等)加非阻塞socket及异步IO的方式构架,使其比其它web服务器性能更 高;静态网页处理能力达到Apache的8-10倍左右。 .kangle支持isapi、fastcgi、cgi、ajp、uwsgi、**、fcgi、hmux等多种扩展接口,是一个非常开放的系 统,非常方便的做负载均衡功能; .kangle内置内存/磁盘两级缓存,采用LRU淘汰算法,缓存命中率非常高,有效降低资源占用; .kangle可实现静态化,正确使用可以节省大量的资源; .防上传木马(上传文件过滤) .
常见问题
启动kangle后,在任务管理器的进程中看到两个kangle.exe是怎么回事? 答:一个是工作进程,一个是安全进程。 如果工作进程出现问题,安全进程会立即重启工作进程。使系统持续稳定运行。 kangle防CC效果如何? 答:效果不错(零误防)。 防火墙防CC的办法就是封ip,有可能封掉正常访问用户的ip。 CC是**协议的攻击,不是tcp/ip,kangle是底层的web服务器,更懂**。 kangle的命令扩展是否具有探测子进程是否错误的功能? 答:具有探测子进程错误的功能。一时探测到错误,自动重启相应的子进程。 如果在反向代理的某个站点中去除管理目录的缓存,怎么操作? 答:在回应控制内给合使用两个功能模块(reg_path、response_flag)。

nginx 自动检测申请证书

nginx 自动检测申请证书

nginx 自动检测申请证书Nginx是一款常用的Web服务器软件,它可以通过配置实现自动检测和申请证书的功能。

下面我将从多个角度为你解答这个问题。

1. 使用Let's Encrypt,Let's Encrypt是一个免费的证书颁发机构,它提供了自动化的证书申请和更新工具。

你可以使用Certbot工具来实现Nginx的自动检测和申请证书。

Certbot可以与Nginx配合使用,自动检测证书的到期时间,并在需要时自动申请并安装新的证书。

2. 配置自动化任务,你可以使用Cron等工具来定期执行证书检测和申请的任务。

通过设置定期执行的脚本,可以在证书即将到期时自动触发证书申请的过程。

这样可以确保证书的持续有效性。

3. 使用ACME协议,ACME(Automatic Certificate Management Environment)是一个用于自动化证书管理的协议。

你可以使用支持ACME协议的工具,如Certbot或acme.sh,来实现Nginx的自动检测和申请证书。

这些工具可以与Nginx配合使用,实现证书的自动申请、更新和安装。

4. 配置Nginx反向代理,你可以将Nginx配置为反向代理服务器,将所有的HTTPS请求转发到后端服务器。

在Nginx中配置SSL 证书,并设置proxy_pass参数将请求转发到后端服务器。

当证书即将到期时,可以通过自动化脚本或工具来检测并申请新的证书,并更新Nginx的配置文件,实现证书的自动更新。

综上所述,通过使用Let's Encrypt、配置自动化任务、使用ACME协议或配置Nginx反向代理等方法,你可以实现Nginx的自动检测和申请证书的功能。

这些方法可以确保证书的持续有效性,提高网站的安全性和可靠性。

ingress-nginx工作原理

ingress-nginx工作原理

ingress-nginx工作原理Ingress-Nginx是Kubernetes集群中用于管理流量和进行负载均衡的一个常用工具。

它是基于Nginx的反向代理服务器,通过将外部流量路由到集群内部的服务,实现了高性能的负载均衡和流量控制。

Ingress-Nginx的工作原理如下:1. 定义Ingress规则:管理员通过Ingress资源定义了一组规则,指定了外部请求如何访问集群中的服务。

每个Ingress规则包含了一个或多个路径和相应的服务。

2. 部署Ingress-Nginx控制器:在集群中部署Ingress-Nginx控制器,它会监听Kubernetes API Server上的Ingress资源的变化。

3. Nginx配置生成:Ingress-Nginx控制器会根据Ingress资源的定义,生成相应的Nginx配置文件。

4. 负载均衡和流量路由:Nginx根据生成的配置文件进行负载均衡和流量路由。

当外部请求到达Ingress-Nginx的Load Balancer时,它会根据配置将请求路由到对应的后端服务上进行处理。

5. SSL/TLS支持:Ingress-Nginx支持通过自签名或使用公共证书来提供加密通信,可以在Ingress规则中配置相应的TLS相关信息。

6. 日志和监控:Ingress-Nginx控制器会记录请求和回复的详细日志,可以通过这些日志来进行监控和排查问题。

7. 动态配置:管理员可以通过更新对应的Ingress资源来进行动态配置,例如更改路径、添加新的服务等,这些更改会被Ingress-Nginx控制器自动更新并应用到Nginx配置中。

总结起来,Ingress-Nginx的工作流程是定义Ingress规则 -> 部署Ingress-Nginx控制器 -> Nginx配置生成 -> 负载均衡和流量路由。

它通过控制器和Nginx的配合,使得流量可以根据规则进行分发和路由,从而实现了高效的负载均衡和流量控制。

nginx 代理ws 原理 -回复

nginx 代理ws 原理 -回复

nginx 代理ws 原理-回复Nginx代理ws原理WebSocket(缩写为ws)是一种在Web应用程序和服务器之间进行全双工通信的协议。

Nginx是一种高性能的反向代理服务器,支持多种协议和服务。

本文将详细介绍Nginx如何代理WebSocket并解释其工作原理。

一、WebSocket简介在WebSocket出现之前,实现实时双向通信的常用方法是使用长轮询(Long Polling)或服务器发送事件(Server-Sent Events,SSE)等技术。

这些方法的问题在于它们在客户端和服务器之间维护了持久的连接,这会导致额外的资源开销和网络延迟。

WebSocket协议通过在客户端和服务器之间建立一个持久的双向通信通道,解决了这个问题。

它是建立在HTTP协议之上的,而且与HTTP协议兼容,可以使用默认的TCP端口80和443。

二、Nginx代理WebSocket的配置要使用Nginx代理WebSocket,需要进行一些配置和调整。

下面是一些配置指南:1. 安装Nginx首先,需要在服务器上安装Nginx。

可以使用包管理器(如apt或yum)来安装。

2. 配置Nginx在Nginx的配置文件(通常是/etc/nginx/nginx.conf)中,需要添加以下配置代码:http {...map http_upgrade connection_upgrade {default upgrade;'' close;}server {...location / {proxy_passproxy_http_version 1.1;proxy_set_header Upgrade http_upgrade;proxy_set_header Connection connection_upgrade;}}...}上述配置中,`http_upgrade`变量会根据请求头中的`Upgrade`字段的值判断是否进行升级。

nginx服务器异常502badgateway原因排查

nginx服务器异常502badgateway原因排查

nginx服务器异常502badgateway原因排查服务器进⾏公众号粉丝数据同步以及批量推送报错502根据错误信息可以判定是后端的问题,502错误的原因有很多种,但总的来说就是服务器处理不过来了1.⾸先查看服务器⽇志1)先查nginx⽇志,不熟悉的可以从nginx.conf中获取error_log的路径,找到错误如下:发现nginx进程处理的连接数不够⽤,单个进程处理的连接数超过了nginx.conf配置的worker_connections值通常worker_connections的值可以参考单个进程打开的最⼤连接数,命令为:ulimit -nulimit -a 查看所有限制参数当前最⼤打开⽂件数:65535,可以设置worker_connections为51200重启nginx nginx -s reload查看当前tcp连接状况netstat -an|awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'2)查看php-fpm⽇志,同样不熟悉⽇志位置可以从php-fpm.conf中查看,注意php7以上的配置⽂件是放在php-fpm.d⽬录下的www.conf查看php-fpm.log发现pm.max_children不够⽤了,说明php-fpm最⼤进程数太⼩了,查看php配置⽂件ww.conf,修改改参数pm.max_children=100php-fpm主要调整⼏个参数pm = dynamic 如何控制⼦进程,选项有static和dynamicpm.max_children:静态⽅式下开启的php-fpm进程数量pm.max_requests:php-fpm⼦进程能处理的最⼤请求数pm.start_servers:动态⽅式下的起始php-fpm进程数量pm.min_spare_servers:动态⽅式下的最⼩php-fpm进程数pm.max_spare_servers:动态⽅式下的最⼤php-fpm进程数量⼀、pm.max_children,pm.max_spare_servers 多⼤合适?这个值原则上是越⼤越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。

1.1Nginx概述

1.1Nginx概述

1.1Nginx概述Nginx概述参考:百度百科:Nginx是俄罗斯⼈研发的,应对Rambler的⽹站,并且2004年发布的第⼀个版本。

Nginx (engine x) 是⼀个⾼性能的HTTP和反向代理服务器,也是⼀个IMAP/POP3/SMTP服务器。

Nginx是由伊⼽尔·赛索耶夫为俄罗斯访问量第⼆的Rambler.ru站点(俄⽂:Рамблер)开发的,第⼀个公开版本0.1.0发布于2004年10⽉4⽇。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、⽰例配置⽂件和低系统资源的消耗⽽闻名。

2011年6⽉1⽇,nginx 1.0.4发布。

Nginx是⼀款轻量级的Web 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器,并在⼀个BSD-like 协议下发⾏。

其特点是占有内存少,并发能⼒强,事实上nginx的并发能⼒确实在同类型的⽹页服务器中表现较好,中国⼤陆使⽤nginx⽹站⽤户有:百度、京东、新浪、⽹易、腾讯、淘宝等。

来源:Nginx是⼀款轻量级的Web 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器(代理中间件),是⼀个开源且⾼性能、可靠的HTTP中间件、代理服务。

特点:开源,⾼性能,可靠的http中间件,代理服务,稳定性强,有丰富的配置实例,占⽤内存⼩常见的HTTP服务nginx是⼀个http服务,那么还有哪些常见的http服务呢?HTTPD->Apache基⾦会(海量容易崩溃)IIS->微软GWS->Google(不对外开放)openrestry(基于nginx+lua开发)->;tengline->淘宝基于Nginx开发lighttpd->;Nginx应⽤⽤场景静态处理理反向代理理负载均衡资源缓存安全防护访问限制访问认证Nginx特性、优点IO多路复⽤(epoll)轻量级CPU亲和(affinity)sendfileIO多路复⽤(epoll)拓展1:IO复⽤:并⾏处理整个IO请求,⼀个socket处理多个请求,上图使⽤的是多线程⽅式.拓展2:IO多路复⽤:多个描述符的I/O操作都能在⼀个线程内并发交替地顺序完成,这就叫I/O多路复⽤,这⾥的"复⽤"指的是复⽤同⼀个线程。

nigx 语法-概述说明以及解释

nigx 语法-概述说明以及解释

nigx 语法-概述说明以及解释1.引言1.1 概述Nginx(英文发音为"engine x")是一款开源的高性能Web服务器和反向代理服务器。

它以其出色的性能和稳定性而闻名,并被广泛用于大型网站和高流量的应用程序中。

Nginx的主要优势之一是其能够处理大量并发连接而不消耗过多的系统资源。

相较于传统的Web服务器,如Apache,Nginx采用了一种非常轻量级的事件驱动模型,能够有效地处理多个并发连接,而无需为每个连接创建额外的线程或进程。

这种设计使得Nginx在高负载情况下能够保持良好的性能表现,并且能够消化大量的请求。

此外,Nginx还具有高度灵活的配置选项,使得它成为一个强大的反向代理服务器。

通过配置反向代理,Nginx可以将客户端请求转发给后端的多个服务器,以实现负载均衡和高可用性。

它还支持HTTP、HTTPS、SMTP、POP3和IMAP等多种协议,并能够进行高级的HTTP内容缓存、SSL/TLS加密以及动态请求的反向代理。

在本文中,我们将深入探讨Nginx的语法要点和特性。

我们将介绍如何正确配置Nginx服务器,包括虚拟主机设置、访问控制、日志记录等。

此外,我们还将研究Nginx的高级功能,例如URL重写、反向代理和负载均衡策略的配置。

通过深入了解Nginx的语法和功能,读者将能够充分利用Nginx来提高他们的Web应用程序的性能和可靠性。

因此,本文的目的是系统地介绍Nginx的语法要点,帮助读者全面理解并正确配置Nginx服务器。

同时,我们还将展望Nginx的应用前景,并提出改进建议,以进一步优化Nginx的性能和功能。

在接下来的章节中,我们将针对Nginx的语法要点进行详细的讨论,并总结出最佳实践。

我们还将探索Nginx在不同应用场景中的应用前景,并提出一些建议,以进一步提高Nginx的性能和可用性。

让我们一起深入研究Nginx的语法和功能,以实现更高效的Web服务器部署和管理。

淘宝-分布式调用跟踪系统介绍

淘宝-分布式调用跟踪系统介绍

7
丼个例子
• 可以得到
– 收费站的每日总车流量和流量趋势 – 鲁A123BC在五一期间的行驶路线和费用 – G20上的车速、路况 – G20流量过高时,车的来源分布
8
丼个例子
• 高速上行驶的车辆:前端请求
• 高速上的收费站:处理请求的应用
• 由中间件去记彔请求的网络调用情况
• 关键点:关联日志中记彔的车牌号
34
埋点和生成日志
• 埋点遇到的问题
– 异步调用
• 业务使用异步线程处理逡辑时会丢失上下文 • 异步 IO:Send 和 Recv 丌在同一线程 • 异步 servlet:业务逡辑在丌同线程中切换执行
– 一对多的调用方式 – 非前端请求触发的调用链
35
埋点和生成日志
• 写日志面临的挑战
– 尽可能减少对业务线程的影响,降低系统消耗 – 每个网络请求至少1行日志,QPS 越高日志产生越快
19
调用来源分析
20
透明的分布式数据传输
eagleeyex_sellerId
应用A
clear(“sellerId”)
get(“sellerId”) =8d6402…
HSF
发消息 投递消息 应用D
消息服务器
应用B
get(“sellerId”)= null
投递消息
HSF
get(“sellerId”) =8d6402… get(“orderId”)= 22f9b7…
应用E
get(“sellerId”) =8d6402… put(“orderId”, 22f9b7…)
应用F
HSF 应用G
21
透明的分布式数据传输
• 鹰眼自身需要传递调用上下文

ngions的配置

ngions的配置

LNMP简介:LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。

代表版本有:debian、centos、ubuntu、fedora、gentoo 等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。

Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

作为负载均衡服务器:Nginx 既可以在内部直接支持Rails 和 PHP,也可以支持作为 HTTP代理服务器对外进行服务。

LNMP源码搭建所需源码:php-5.4.0.tar(), nginx-1.1.18.tar(),mysql-5.0.95.tar()linux版本为企业版5.4,ip地址192.168.101.22首先编辑yum,在/etc/yum.repos.d/目录下编辑rhel-debuginfo.repo(我们使用的是本地yum):建立光盘挂载点/mnt/cdrom,将光盘挂载上面mount /dev/cdrom /mnt/cdrom。

用yum grouplist来查看开发环境所用的组,其中开发环境所需的有:开发库Development Librarity 、开发工具 Development Tools、需安装pcre-devel指令为:yum install pcre-develyum install -y pcre-devel pcre libcurl-develyum install -y libjpeg-6b libjpeg-devel libpng libpng-devel zlib zlib-devel freetype freetype-devel libXpm libXpm-devel libxml2 libxml2-devel bzip2 bzip2-devel gd下面开始安装源码一、编译安装nginx-1.1.181、添加nginx系统组和用户groupadd -r nginxuseradd -r -g nginx -s /bin/false -M nginx2、编译[root@Eleven ~]# tar -zxvf nginx-1.1.18.tar.gz -C /usr/src/ [root@Eleven ~]# cd /usr/src/nginx-1.1.18/./configure \--prefix=/usr \--sbin-path=/usr/sbin/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--user=nginx \--group=nginx \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--http-client-body-temp-path=/var/tmp/nginx/client/ \--http-proxy-temp-path=/var/tmp/nginx/proxy/ \--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \--http-scgi-temp-path=/var/tmp/nginx/scgi \--with-pcre说明:--prefix=/usr 软件安装目录--sbin-path=/usr/sbin/nginx 软件的二进制文件目录--conf-path=/etc/nginx/nginx.conf 软件的配置文件目录--error-log-path=/var/log/nginx/error.log 错误日志--http-log-path=/var/log/nginx/access.log 访问日志--pid-path=/var/run/nginx/nginx.pid 软件的进程号文件--lock-path=/var/lock/nginx.lock 软件的锁文件nginx.lock路径--user=nginx 指定所属用户--group=nginx 指定所属组--with-http_ssl_module 添加了ssl模块支持--with-http_flv_module 添加了flv模块支持--with-http_stub_status_module--with-http_gzip_static_module 添加了静态压缩模块支持--http-client-body-temp-path=/var/tmp/nginx/client/http 客户端请求临时文件的存放路径--http-proxy-temp-path=/var/tmp/nginx/proxy/ 代理访问的临时文件存放路径--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ fastcgi 临时文件存放路径--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi--http-scgi-temp-path=/var/tmp/nginx/scgi3、安装make && make installmkdir -pv /var/tmp/nginx/client[root@Eleven nginx-1.1.18]# nginx查看端口[root@Eleven nginx-1.1.18]# netstat -tupln |grep nginx测试:二、编译安装mysql如果没有安装ncurses-devel首先安装解决依赖关系,指令:yum -y install ncurses-devel创建MySQL用户,指令:useradd -M -s /sbin/nologin mysql[root@Eleven ~]# tar -zxvf mysql-5.0.95.tar.gz -C /usr/src/ [root@Eleven ~]# cd /usr/src/mysql-5.0.95/./configure \--prefix=/usr/local/mysql \--without-debug \ # 取消调试模式提高性能--with-extra-charsets=utf8,gbk \ # 仅仅指定需要的默认字符集提高性能--enable-assembler \ # 使用汇编模式提高性能--with-mysqld-ldflags=-all-static \ # 以静态方式编译提高性能--with-client-ldflags=-all-static \--with-unix-socket-path=/tmp/mysql.sock \ # 使用unix socket 提高性能--with-ssl./configure \--prefix=/usr/local/mysql \--without-debug \--with-extra-charsets=utf8,gbk \--enable-assembler \--with-mysqld-ldflags=-all-static \--with-client-ldflags=-all-static \--with-unix-socket-path=/tmp/mysql.sock \--with-ssl回车然后执行:make && make install安装完成后复制配置文件和启动脚本:cp support-files/f /etc/f # 复制配置文件cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本chmod +x /etc/init.d/mysqld # 给启动脚本执行权限ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 为可执行的二进制文件做软连接ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接mysql_install_db --user=mysql # 用MySQL用户安装数据库chown -R root.mysql /usr/local/mysql/ # 更改安装目录属主为root,属组为mysqlchown -R mysql.mysql /usr/local/mysql/var/ # 更改数据库目录属主和属组都为mysql然后启动mysql测试:可知mysql已成功安装三、编译安装PHP在安装php之前首先解决依赖关系,需安装几个源码包:(1)、libmcrypt-2.5.8.tar.bz2,下载地址:/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download[root@Eleven ~]# tar -jxvf libmcrypt-2.5.8.tar.bz2 -C/usr/src/[root@Eleven ~]# cd /usr/src/libmcrypt-2.5.8/[root@Eleven libmcrypt-2.5.8]# ./configure[root@Eleven libmcrypt-2.5.8]# make && make install(2)、mhash-0.9.9.9.tar.bz2 下载地址:/projects/mhash/files/mhash/0.9.9.9/m hash-0.9.9.9.tar.bz2/download[root@Eleven ~]# tar -jxvf mhash-0.9.9.9.tar.bz2 -C /usr/src/ [root@Eleven ~]# cd /usr/src/mhash-0.9.9.9/[root@Eleven mhash-0.9.9.9]# ./configure[root@Eleven mhash-0.9.9.9]# make && make install这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包ln -s /usr/local/lib/libmcrypt* /usr/libln -s /usr/local/lib/libmhash.* /usr/lib/(3)、mcrypt-2.6.8.tar.gz,下载地址:/projects/mcrypt/files/MCrypt/2.6.8/m crypt-2.6.8.tar.gz/download[root@Eleven ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/ [root@Eleven ~]# cd /usr/src/mcrypt-2.6.8/[root@Eleven mcrypt-2.6.8]# ./configure[root@Eleven mcrypt-2.6.8]# make && make install下面安装php首先解决依赖,指令:yum –y install libxml2-devel curl-devel libpng-devel openldap-devel[root@Eleven ~]# tar -zxvf php-5.4.0.tar.gz -C /usr/src/ [root@Eleven ~]# cd /usr/src/php-5.4.0/[root@Eleven php-5.4.0]#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml--disable-rpath --enable-safe-mode --enable-bcmath--enable-shmop --enable-sysvsem--with-curl --with-curlwrappers --enable-fpm--enable-fastcgi --with-mcrypt --with-gd --with-openssl--with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap[root@Eleven php-5.4.0]# make && make install到这里整个LNMP已经安装完成.下面我们就配置php和nginx能运行php网站:首先为php创建配置文件,指令:(1)cp php.ini-production /usr/local/php/php.ini # 如果是开发就复制php.ini-development(2)cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf(3)ln -s /usr/local/php/bin/php /usr/bin/然后配置php-fpm,编辑php-fpm.conf[root@Eleven php-5.4.0]# vim /usr/local/php/etc/php-fpm.conf 修改143行:如下/var/run/php-fpm/php-fpm.sock启动php-fpm:mkdir /var/run/php-fpm/usr/local/php/sbin/php-fpm (一定要执行,否则不能成功)[root@Eleven local]# cd /etc/nginx/[root@Eleven nginx]# vim nginx.conf增加下面几行unix:/var/run/php-fpm/php-fpm.sock$document_root/include fastcgi.conf修改完毕后保存退出重启nginx:[root@Eleven nginx]# pkill -1 nginx然后在/usr/html/下创建index.php[root@Eleven nginx]# vim /usr/html/index.php写入如下内容;测试:用浏览器访问http://192.168.101.22/index.php可以看到已成功连接php。

nginx 透明代理原理

nginx 透明代理原理

nginx 透明代理原理[nginx 透明代理原理]在介绍nginx 透明代理的原理之前,我们首先需要了解什么是透明代理和为什么要使用nginx 作为透明代理。

透明代理是一种网络代理的形式,它会将所有网络流量经过代理服务器进行转发,而对用户和服务器来说是透明的,他们不需要知道网络流量经过了代理服务器。

透明代理常用于防火墙、缓存服务器、负载均衡等场景,以提高网络的安全性、性能和稳定性。

为什么要使用nginx 作为透明代理呢?nginx 是一款高性能的开源Web 服务器,其最大的优点是可以处理高并发的网络请求,并且具有灵活的配置能力。

因此,将nginx 作为透明代理可以充分利用其高性能和灵活性来实现网络流量的转发和处理。

下面我们将一步一步回答关于nginx 透明代理的原理。

步骤一:配置透明代理服务器首先,我们需要在nginx 的配置文件中进行相关的配置,以将其配置为透明代理服务器。

在配置文件的http 模块中,我们需要添加一些配置项,如下所示:http {server {listen 80;server_name localhost;# 配置透明代理location / {proxy_passproxy_set_header Host host;proxy_set_header X-Real-IP remote_addr;proxy_set_header X-Forwarded-Forproxy_add_x_forwarded_for;}}upstream backend {server backend_server_ip:backend_server_port;}}在上述配置中,我们通过`proxy_pass` 配置项将请求转发到backend 服务,同时使用`proxy_set_header` 配置项设置一些相关的请求头信息,以便后端服务器正确处理请求。

步骤二:配置防火墙接下来,我们需要配置防火墙,以将所有网络流量转发到透明代理服务器。

阿里云负载均衡SLB简介

阿里云负载均衡SLB简介

阿⾥云负载均衡SLB简介⼀、什么是负载均衡负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。

负载均衡扩展了应⽤的服务能⼒,增强了应⽤的可⽤性。

概述负载均衡通过设置虚拟服务地址,将添加的同⼀地域的多台ECS实例虚拟成⼀个⾼性能、⾼可⽤的后端服务池,并根据转发规则,将来⾃客户端的请求分发给后端服务器池中的ECS实例。

负载均衡默认检查云服务器池中的ECS实例的健康状态,⾃动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提⾼了应⽤的整体服务能⼒。

此外,负载均衡还具备抗DDoS攻击的能⼒,增强了应⽤服务的防护能⼒。

组成部分负载均衡由以下三个部分组成:负载均衡实例(Server Load Balancer instances)⼀个负载均衡实例是⼀个运⾏的负载均衡服务,⽤来接收流量并将其分配给后端服务器。

要使⽤负载均衡服务,您必须创建⼀个负载均衡实例,并⾄少添加⼀个监听和两台ECS实例。

监听(Listeners)监听⽤来检查客户端请求并将请求转发给后端服务器。

监听也会对后端服务器进⾏健康检查。

后端服务器(Backend Servers)⼀组接收前端请求的ECS实例。

您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。

产品优势⾼可⽤采⽤全冗余设计,⽆单点,⽀持同城容灾。

搭配DNS可实现跨地域容灾,可⽤性⾼达99.95%。

根据应⽤负载进⾏弹性扩容,在流量波动情况下不中断对外服务。

可扩展您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应⽤的服务能⼒。

低成本与传统硬件负载均衡系统⾼投⼊相⽐,成本可下降60%。

安全结合云盾,可提供5Gbps的防DDoS攻击能⼒。

⾼并发集群⽀持亿级并发连接,单实例提供千万级并发能⼒。

⼆、产品架构负载均衡基础架构是采⽤集群部署,提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。

tengine安装及性能优化

tengine安装及性能优化

#gzip on;
server {
listen
80;
#server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
#
#server {
# listen
443;
# server_name localhost;
# ssl
on;
# ssl_certificate
cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
组合多个 CSS、JavaScript 文件的访问请求变成一个请求;
可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线;
自动根据 CPU 数目设置进程个数和绑定 CPU 亲缘性;
监控系统的负载和资源占用从而对系统进行保护;
显示对运维人员更友好的出错信息,便于定位出错机器;
更强大的防攻击(访问速度限制)模块;
#
#location ~ \.php$ {
# root
html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include

查看nginx apache php tengine tomcat版本的信息以及如何隐藏版本信息

查看nginx apache php tengine tomcat版本的信息以及如何隐藏版本信息

查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息要操作的信息列表∙nginx版本信息查询及隐藏∙Apache版本信息查询及隐藏∙php版本信息查询及隐藏∙tengine版本信息查询及隐藏∙tomcat版本信息查询及隐藏详细操作步骤1.1、nginx版本信息查询1.2、nginx编译配置参数查询1.3、客户端查看nginx的Response Header信息1.4、如何隐藏nginx的Response Header中返回的版本号信息修改nginx配置文件,在全局配置中添加server_tokens off; 这一行1.[root@zhuima_nginx ~]#2.[root@zhuima_nginx ~]# sed -n '/server_tokens/p'/usr/local/nginx/conf/nginx.conf3.server_tokens off; # 在nginx全局配置文件中添加这行即可4.[root@zhuima_nginx ~]#重启nginx服务然后客户端验证效果1.[root@zhuima_client ~]# curl -I http://218.244.xxx.xxx2.HTTP/1.1200 OK3.Server: nginx4.Date:Sat,19Jul201402:33:11 GMT5.Content-Type: text/html6.Content-Length:16412st-Modified:Mon,07Jul201405:25:22 GMT8.Connection: keep-alive9.Vary:Accept-Encoding10.ETag:"53ba2f42-401c"11.Accept-Ranges: bytes2、Apache版本信息查询及隐藏2.1、apache版本信息查询apache版本信息查询1.[root@zhuima_httpd ~]# apachectl -v2.Server version:Apache/2.2.15(Unix)3.Server built:Apr3201423:56:164.[root@zhuima_httpd ~]#apache编译参数查询1.[root@zhuima_httpd ~]# apachectl -V2.Server version:Apache/2.2.15(Unix)3.Server built:Apr3201423:56:164.Server's Module Magic Number:20051115:255.Server loaded: APR 1.3.9, APR-Util 1.3.9piled using: APR 1.3.9, APR-Util 1.3.97.Architecture:64-bit8.Server MPM:Prefork9.threaded: no10. forked: yes (variable process count)11.Server compiled with....12.-D APACHE_MPM_DIR="server/mpm/prefork"13.-D APR_HAS_SENDFILE14.-D APR_HAS_MMAP15.-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)16.-D APR_USE_SYSVSEM_SERIALIZE17.-D APR_USE_PTHREAD_SERIALIZE18.-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT19.-D APR_HAS_OTHER_CHILD20.-D AP_HAVE_RELIABLE_PIPED_LOGS21.-D DYNAMIC_MODULE_LIMIT=12822.-D HTTPD_ROOT="/etc/httpd"23.-D SUEXEC_BIN="/usr/sbin/suexec"24.-D DEFAULT_PIDLOG="run/httpd.pid"25.-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"26.-D DEFAULT_LOCKFILE="logs/accept.lock"27.-D DEFAULT_ERRORLOG="logs/error_log"28.-D AP_TYPES_CONFIG_FILE="conf/mime.types"29.-D SERVER_CONFIG_FILE="conf/httpd.conf"30.[root@zhuima_httpd ~]#2.2、apache版本信息隐藏∙客户端验证apahce的Response Headers头信息1.[root@zhuima_client ~]# curl -I http://192.168.xxx.xxx2.HTTP/1.1403Forbidden3.Date:Sat,19Jul201402:41:02 GMT4.Server:Apache/2.2.15(CentOS)5.Accept-Ranges: bytes6.Content-Length:50397.Connection: close8.Content-Type: text/html; charset=UTF-8∙在Apache配置文件中添加ServerTokens ProductOnly1.#ServerTokens OS # 注释掉改行2.Servertokens off # 添加这行屏蔽apache版本信息3.ServerSignature Off# 添加这行屏蔽系统信息重启httpd服务之后客户端再次验证1.[root@zhuima_client ~]# curl -I http://192.168.xxx.xxx2.HTTP/1.1403Forbidden3.Date:Sat,19Jul201402:47:21 GMT4.Server:Apache5.Accept-Ranges: bytes6.Content-Length:50397.Connection: close8.Content-Type: text/html; charset=UTF-83、略4、tengine版本信息查询及隐藏4.1、tengine版本信息查询这里为什么要把tengine单独拿出来说事呢,初装tengine的童鞋肯定会有点迷茫,为毛tengine会显示出那么多的系统版本信息,除此之外其他操作和nginx一样,这里仅说下nginx版本的隐藏相关显示的信息有:∙Server----->服务器名称∙tengine版本信息∙服务器端的时间有图为证:4.2、tengine版本信息隐藏∙在tengine配置文件中添加下面三项即可1.server_tag off;2.server_info off;3.server_tokens off;∙重启tengine服务再次进行验证5、tomcat版本信息查询及隐藏5.1、tomcat版本信息查询tomcat版本信息查询(新接手环境的时候很有必要查看的)1.[root@zhuima_tomcat ~]$ catalina.sh version2................................3.Server version:Apache Tomcat/7.0.424.Server built:Jul2201308:57:415.Server number:7.0.42.06.OS Name:Linux7.OS Version: 2.6.32-431.el6.x86_648.Architecture: amd649.JVM Version: 1.7.0_09-b0510.JVM Vendor:Oracle Corporation客户端验证tomcat版本信息5.2、tomcat版本信息隐藏隐藏tomcat版本信息▪到apache-tomcat安装目录下的lib子文件夹,找到catalina.jar这包,并进行解▪解压之后进度到org/catalina/apache/util/目录下,编辑ServerInfo.properties ▪vim /path/tomcat/lib/org/apache/catalina/util/ServerInfo.properties▪来张修改前后的对比图吧∙再次验证页面显示信息总结:∙新的环境中尽可能多用help指令查看老的环境的部署∙操作之前尽可能做的备份,要不然你懂得后果的∙最主要的还是要了解并掌握大多数常用服务,要不然也是干瞪眼∙本篇文章纯属扯淡,没啥技术含量∙打完收工。

nginx exporter指标

nginx exporter指标

nginx exporter指标nginx exporter是一种用于监控和收集nginx服务器指标的工具。

它可以通过暴露指标的方式,将nginx服务器的性能数据提供给Prometheus进行监控和分析。

nginx exporter提供了丰富的指标,可以帮助我们了解nginx服务器的运行状态。

其中包括连接数、请求数、响应时间、吞吐量等。

通过这些指标,我们可以监控nginx服务器的负载情况,及时发现并解决潜在的性能问题。

nginx exporter采用的是基于HTTP的指标暴露方式,使得我们可以方便地通过HTTP接口获取这些指标。

这样一来,我们不需要繁琐地登录到服务器上去查看这些指标,只需要通过浏览器或命令行工具访问暴露出来的HTTP接口即可轻松获取到所需的指标数据。

nginx exporter还支持自定义指标的收集。

我们可以通过配置文件指定需要收集的指标,也可以自定义指标的命名和标签。

这样一来,我们可以根据自己的需求,定制化地收集和展示nginx服务器的指标数据。

nginx exporter还提供了一些常用的监控仪表盘模板,如Grafana。

我们可以通过这些模板,快速地搭建起一个可视化的监控平台,直观地展示nginx服务器的性能数据。

这样一来,我们不仅可以更方便地查看指标数据,还可以及时发现潜在的问题并进行相应的优化和调整。

总结来说,nginx exporter是一个非常实用的工具,它可以帮助我们监控和收集nginx服务器的指标数据,帮助我们及时发现和解决性能问题。

通过它提供的丰富指标和灵活的配置,我们可以更好地了解和掌握nginx服务器的运行状态,提高服务器的可用性和性能。

同时,通过与其他监控工具的结合,如Prometheus和Grafana,我们可以更好地展示和分析这些指标数据,为服务器的运维和优化提供有力支持。

淘宝的核心技术及演变

淘宝的核心技术及演变

淘宝的核心技术(国内乃至国际的Top,这还是2011年的数据):拥有全国最大的分布式Hadoop 集群(云梯,2000左右节点,24000核CPU,48000GB 内存,40PB 存储容量)全国分布80+CDN 节点,能够自动找寻最近的节点提供服务,支持流量超过800Gbps 不逊于百度的搜索引擎,对数十亿商品进行搜索,全球最大的电商平台顶尖的负载均衡系统,顶尖的分布式系统,顶尖的互联网思想,功能多样运行极其稳定丰富的生态产业以及先进的数据挖掘技术……很多很多下面来看看淘宝技术演变过程。

马总在2003年4月7日秘密叫来阿里巴巴的十位员工,来到杭州一个隐秘的毛坯房,要求他们在一个月左右的时间内做出一个C2C 网站。

结果当然还是直接买的快,一个基于LAMP 架构的网站,原名是PHPAuction,老美开发的一个拍卖网站。

当然必须要做修改才能用。

2003年底,淘宝注册用户23万,PV 31万/day,半年成交额3371万。

很显然MySQL 无法撑得起如此大的访问量,数据库瓶颈出现了。

幸好阿里的DBA 队伍足够强大,他们使用Oracle 替代了MySQL。

Oracle 那时就已经有了强大的并发性访问设计——连接池,从连接池取连接的耗费比单独建立连接少很多。

但是PHP 当时并没有官方提供支持语言连接池特性,于是多隆前辈用Google(不会是Baidu)搜到了一个开源的SQL Relay,于是数据库软件方面的瓶颈暂时解决了。

随之而来的是面临硬件性能瓶颈,阿里买了EMC 的SAN 存储设备,加上Oracle 高性能RAC,硬件容量也暂时没问题了。

因为SQL Relay 的问题实在过于严重,2004年于是淘宝终于做出了跨时代的决策——使用Java重写网站。

淘宝请了Sun 的高级工程师来帮忙做Java 架构。

那么他们是如何做到修改编程语言而不改变网站使用呢——模块化替换,今天写好了A 模块,另开一个新域名,将连接指向该模块,同时别的模块不变,等到全部模块完成的时候,原域名放弃。

Nginx安装及配置详解包括windows环境

Nginx安装及配置详解包括windows环境

Nginx安装及配置详解包括windows环境nginx概述nginx是⼀款⾃由的、开源的、⾼性能的HTTP服务器和反向代理服务器;同时也是⼀个IMAP、POP3、SMTP代理服务器;nginx可以作为⼀个HTTP服务器进⾏⽹站的发布处理,另外nginx可以作为反向代理进⾏负载均衡的实现。

这⾥主要通过三个⽅⾯简单介绍nginx反向代理负载均衡nginx特点1. 反向代理关于代理说到代理,⾸先我们要明确⼀个概念,所谓代理就是⼀个代表、⼀个渠道;此时就设计到两个⾓⾊,⼀个是被代理⾓⾊,⼀个是⽬标⾓⾊,被代理⾓⾊通过这个代理访问⽬标⾓⾊完成⼀些任务的过程称为代理操作过程;如同⽣活中的专卖店~客⼈到adidas专卖店买了⼀双鞋,这个专卖店就是代理,被代理⾓⾊就是adidas⼚家,⽬标⾓⾊就是⽤户正向代理说反向代理之前,我们先看看正向代理,正向代理也是⼤家最常接触的到的代理模式,我们会从两个⽅⾯来说关于正向代理的处理模式,分别从软件⽅⾯和⽣活⽅⾯来解释⼀下什么叫正向代理在如今的⽹络环境下,我们如果由于技术需要要去访问国外的某些⽹站,此时你会发现位于国外的某⽹站我们通过浏览器是没有办法访问的,此时⼤家可能都会⽤⼀个操作FQ进⾏访问,FQ的⽅式主要是找到⼀个可以访问国外⽹站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的⽹站,然后将访问到的数据传递给我们!上述这样的代理模式称为正向代理,正向代理最⼤的特点是客户端⾮常明确要访问的服务器地址;服务器只清楚请求来⾃哪个代理服务器,⽽不清楚来⾃哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

反向代理明⽩了什么是正向代理,我们继续看关于反向代理的处理⽅式,举例如我⼤天朝的某宝⽹站,每天同时连接到⽹站的访问⼈数已经爆表,单个服务器远远不能满⾜⼈民⽇益增长的购买欲望了,此时就出现了⼀个⼤家⽿熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问⼈数限制的问题;某宝⽹站中⼤部分功能也是直接使⽤nginx进⾏反向代理实现的,并且通过封装nginx和其他的组件之后起了个⾼⼤上的名字:Tengine,有兴趣的童鞋可以访问Tengine的官⽹查看具体的信息:那么反向代理具体是通过什么样的⽅式实现的分布式的集群操作呢,我们先看⼀个⽰意图:通过上述的图解⼤家就可以看清楚了,多个客户端给服务器发送的请求,nginx服务器接收到之后,按照⼀定的规则分发给了后端的业务处理服务器进⾏处理了。

网络协会2016培训华南师范大学统一身份认证.pptx

网络协会2016培训华南师范大学统一身份认证.pptx
网络协会2016培训
选课专题 – 2016/12/09 – Payne
什么是选课?
每学期开始前,同学们登录教务系统,选择自 己要上的必修课、选修课、公选课等课程。 这一选择课程的过程就叫选课。
华师的选课流程
第一轮 任选
第二轮 “抢”
第三轮 捡漏
第一轮选课
和平共处
第一轮选课
第一轮选课是非常和平的。 同学们只需要抽空登录教务系统选好自己想选的课 就可以了。 不存在“抢”的问题。 第一轮结束后,教务系统会自动对超过容量的课进 行随机筛选(俗称“踢人”)。 筛选后,该课在第二轮就没有名额了。好课一般第 一轮就满了,除非“暴殄天物”。
现场疑问解答
抽奖时刻
是时候检验一波真正的人品了
谢谢大家
教务系统是神马?
每学期的选课期间,因为各种卡、各种进不去、各 种掉线,正方教务系统被各大学校的同学吐槽。
为什么教务系统高峰时巨卡
因为选课期间,同学非常非常多。 单一台的教务系统本身不能承受如此巨大的访问量。 再教务系统本身访问优化设计有问题,即便是较少 的访问量,也容易发生服务器软件(IIS)崩溃。 使得服务器宕机的问题雪上加霜。 宕机后将会出现类似卡死、加载不出页面的现象。
每当第二轮选课高峰来临,同学们都想挤 进教务系统。 过多的流量导致小小的教务系统往往不堪 重负。容易出现服务器系统瘫痪的问题。 高峰时无法进入系统,选不到心目中的好 课,往往会让同学们感到心情郁闷。
问题的根源
选课系统 校园网 数据库
教务系统是神马?
华南师范大学使用的教务系统是正方教务系统。 国内很多高校使用正方教务系统。
华师的教务系统不是一台 服务器这么简单,而是很 多台服务器! 通过“负载均衡”的技术, 分配“最优”的服务器给 你。 让同学们访问教务系统的 流量可以分发到不同的服 务器,减轻单台主机压力。

openresty介绍

openresty介绍

openresty介绍RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ [QSA,PT,L]nginxinclude /usr/local/openresty/nginx/conf/rewrite/thinkphp.conf;[root@web conf]# cat /root/oneinstack/config/laravel.conflocation / {try_files uri uri/ /index.php?$query_string;}[root@web conf]# cat /usr/local/openresty/nginx/conf/rewrite/thinkphp.conflocation / {if (!-e $request_filename) {rewrite ^(.*)/index.php?s=1 last;break;}}[root@web conf]# cat /root/oneinstack/config/wordpress.conflocation / {try_files uri uri/ /index.php?args; } rewrite /wp-admin permanent;location∗/wp−content/uploads/.∗\.php {deny all;}⼆、其他产品2.1 openrestyOpenResty (也称为 ngx_openresty)是⼀个全功能的 Web 应⽤服务器。

它打包了标准的 Nginx 核⼼,很多的常⽤的第三⽅模块,以及它们的⼤多数依赖项。

通过众多进⾏良好设计的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为⼀个强⼤的 Web 应⽤服务器,基于它开发⼈员可以使⽤Lua 编程语⾔对 Nginx 核⼼以及现有的各种 Nginx C 模块进⾏脚本编程,构建出可以处理⼀万以上并发请求的极端⾼性能的 Web 应⽤。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档