当前位置: 首页 > news >正文

南京网站设计外包优秀网站设计案例中国

南京网站设计外包,优秀网站设计案例中国,wordpress维护页面,中国电商平台有哪些接上篇#xff1a;《RabbitMQ 从入门到精通#xff1a;从工作模式到集群部署实战#xff08;一#xff09;》 链接 文章目录 4.安装RabbitMQ Messaging Topology Operator 裸金属环境部署RabbitMQ部署单实例部署集群 4.安装RabbitMQ Messaging Topology Operator 使用 cer…接上篇《RabbitMQ 从入门到精通从工作模式到集群部署实战一》 链接 文章目录 4.安装RabbitMQ Messaging Topology Operator 裸金属环境部署RabbitMQ部署单实例部署集群 4.安装RabbitMQ Messaging Topology Operator 使用 cert-manager 安装Messaging Topology Operator 在k8s集群上安装 cert-manager 版本 1.2.0。例如对于版本 1.3.1请运行 wget https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.yamlkubectl apply -f cert-manager.yaml要安装 Operator请运行以下命令 wget https://github.com/rabbitmq/messaging-topology-operator/releases/latest/download/messaging-topology-operator-with-certmanager.yamlkubectl apply –f messaging-topology-operator-with-certmanager.yaml使用生成的自有证书安装Messaging Topology Operator 此方式因涉及自建私有证书具体步骤可以参考官方文档 https://www.rabbitmq.com/kubernetes/operator/install-topology-operator#install-with-generated-certificates 使用Kubernetes 内部非默认域名 默认情况下Kubernetes 内部域名为.cluster.local。kubeadm可以将其配置为其他名称例如my.cluster.domain。在这种情况下Messaging Topology Operator可以将自定义域名附加到用于与 RabbitMQ 交互的连接字符串中。 要配置消息传递拓扑操作员以在连接字符串中附加域名请将环境变量设置MESSAGING_DOMAIN_NAME为您的域名例如.my.cluster.domain。 修改Messaging Topology Operator部署清单文件在Deployment配置段中向spec. template… spec. container. Command增加一个env名称MESSAGING_DOMAIN_NAME和值为您的域名如messaging-topology-operator-with-certmanager.yaml apiVersion: apps/v1 kind: Deployment metadata:[...]name: messaging-topology-operatornamespace: rabbitmq-system spec:template:[...]spec:containers:- command:- /managerenv:- name: OPERATOR_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: MESSAGING_DOMAIN_NAMEvalue: my.cluster.domainMessaging Topology Operator使用 创建queue和Policy 以下清单将在namepace名为rabbitmq-test下默认虚拟主机中创建一个名为“queue-t1-rabbitmq-test”的队列 cat queue-t1-rabbitmq-test.yamlapiVersion: rabbitmq.com/v1beta1 kind: Queue metadata:name: queue-t1namespace: rabbitmq-test spec:name: queue-t1-rabbitmq-testautoDelete: falsedurable: truerabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-test kubectl apply -f queue-t1-rabbitmq-test.yaml queue.rabbitmq.com/queue-t1 createdkubectl get queue -n rabbitmq-test NAME AGE queue-t1 17s以下清单将在namepace名为rabbitmq-test下创建名为“policy-example”的policy cat policy.yamlapiVersion: rabbitmq.com/v1beta1 kind: Policy metadata:name: policy-examplenamespace: rabbitmq-test spec:name: lazy-queuepattern: ^lazy-queue- # matches any queue begins with lazy-queue-applyTo: queuesdefinition:queue-mode: lazyrabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-testkubectl apply -f policy.yaml policy.rabbitmq.com/policy-example createdkubectl get policy -n rabbitmq-test NAME AGE policy-example 54s创建exchange和binding 以下清单将在namepace名为rabbitmq-test下创建名为“rabbitmq-test”的exchange cat exchange.yaml cat exchange.yamlapiVersion: rabbitmq.com/v1beta1 kind: Exchange metadata:name: fanoutnamespace: rabbitmq-test spec:name: fanout-exchange # name of the exchangetype: fanout # default to direct if not provided; can be set to direct, fanout, headers, and topicautoDelete: falsedurable: truerabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-testkubectl apply -f exchange.yaml exchange.rabbitmq.com/fanout createdkubectl get exchange -n rabbitmq-test NAME AGE fanout 13s以下清单将在namepace名为rabbitmq-test下将名为“rabbitmq-test”的exchange与名为“queue-t1-rabbitmq-test”的queue 进行绑定 cat binding.yamlapiVersion: rabbitmq.com/v1beta1 kind: Binding metadata:name: bindingnamespace: rabbitmq-test spec:source: fanout-exchange # an existing exchangedestination: queue-t1-rabbitmq-test # an existing queuedestinationType: queue # can be queue or exchangeroutingKey: queue-t1-rabbitmq-testrabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-testkubectl apply -f binding.yaml binding.rabbitmq.com/binding created创建的binding无法通过kubectl 命令列出但通过RabbitMQ的管理UI可以看到。 创建用户及授权 可以使用 Messaging Topology Operator 创建 RabbitMQ 用户并分配用户权限 对账号(admin-user01)、密码(123123.com)进行base64加密 echo -n admin-user01 | base64 YWRtaW4tdXNlcjAxecho -n 123123.com | base64 MTIzMTIzLmNvbQ创建secret vim secret-admin-user01.yamlapiVersion: v1 kind: Secret metadata:name: admin-user-secretnamespace: rabbitmq-test # 指定rabbitmq-cluster01的namespace type: Opaque data:username: YWRtaW4tdXNlcjAx # base64 编码后的用户名password: MTIzMTIzLmNvbQ # base64 编码后的密码kubectl apply -f secret-admin-user01.yaml secret/admin-user01-secret created创建Rabbitmq 账号资源需要引用上面步骤创建的secret vim my-admin-user01.yamlapiVersion: rabbitmq.com/v1beta1 kind: User metadata:name: my-admin-user01namespace: rabbitmq-test spec:tags:- administratorrabbitmqClusterReference:name: rabbitmq-cluster01 # rabbitmqCluster must exist in the same namespace as this resourcenamespace: rabbitmq-testimportCredentialsSecret:name: admin-user01-secret # must match the name of the Secretkubectl apply -f my-admin-user01.yaml user.rabbitmq.com/my-admin-user01 created创建Rabbitmq 账号授权资源 vim permission-admin-user10.yamlapiVersion: rabbitmq.com/v1beta1 kind: Permission metadata:name: admin-user01-permissionnamespace: rabbitmq-test spec:vhost: /user: admin-user01 # name of the RabbitMQ userpermissions:write: .*configure: .*read: .*rabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-testkubectl apply -f permission-admin-user10.yaml permission.rabbitmq.com/admin-user01-permission created创建虚拟主机 以下YAML将在名为“rabbitmq-cluster01”的 RabbitmqCluster 中创建名为“test”的虚拟主机 vim vhost01.yamlapiVersion: rabbitmq.com/v1beta1 kind: Vhost metadata:name: test-vhost01 # name of this custom resourcenamespace: rabbitmq-test spec:name: test01 # name of the vhostrabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-testkubectl apply -f vhost01.yaml vhost.rabbitmq.com/test-vhost01 createdkubectl get vhost -n rabbitmq-test NAME AGE test-vhost01 2s更新 一些自定义资源属性是不可变的Messaging Topology Operator 实现了验证 webhook 来阻止对不可变字段的更新。禁止的更新将被拒绝。例如 kubectl apply -f test-queue.yaml Error from server (Forbidden): ... Resource: rabbitmq.com/v1beta1, Resourcequeues, GroupVersionKind: rabbitmq.com/v1beta1, KindQueue Name: example, Namespace: rabbitmq-system for: test-queue.yaml: admission webhook vqueue.kb.io denied the request: Queue.rabbitmq.com example is forbidden: spec.name: Forbidden: updates on name, vhost, and rabbitmqClusterReference are all forbidden无法更新的属性已记录在Messaging Topology Operator API 文档中URLhttps://github.com/rabbitmq/messaging-topology-operator/blob/main/docs/api/rabbitmq.com.ref.asciidoc 删除 删除自定义资源会删除 RabbitMQ 集群中相应的资源。Messaging Topology Operator 会在所有自定义资源上设置 kubernetes finalizers。如果对象已在 RabbitMQ 集群中删除或者 RabbitMQ 集群已删除Messaging Topology Operator 会删除自定义资源而不会尝试删除 RabbitMQ 对象。 跨命名空间 默认情况下Messaging Topology Operator 只协调使用RabbitMQ Cluster Kubernetes Operator 创建的RabbitMQ集群所在namespace下的创建消息拓扑资源请求。如果需要创建的建消息拓扑资源在其他的namesapce需要在namespace 下添加相关注解annotations.rabbitmq.com/topology-allowed-namespaces 如下图RabbitMQ集群所在的的namespace为rabbitmq-test如果需要Messaging Topology Operator 额外协调rabbitmq-01和rabbitmq-02 两个namespace下消息拓扑资源需要进行如下配置多个namespace使用逗号分隔中间不能有空格。可以设置为“*”则为协调所有namesapce apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata:name: rabbitmq-cluster01namespace: rabbitmq-testannotations:rabbitmq.com/topology-allowed-namespaces: rabbitmq-01,rabbitmq-02如果在没有允许的namespace中创建消息拓扑资源如下图中为“my-app2”Topology Operator 的pod会有相关日志提示 示例如下 在namespace为my-app2下创建名称为queue-t1的queue, 在rabbitmq中的名称为queue-t1-my-app2 apiVersion: rabbitmq.com/v1beta1 kind: Queue metadata:name: queue-t1 # name of this custom resource; does not have to the same as the actual queue namenamespace: my-app2 spec:name: queue-t1-my-app2 # name of the queuerabbitmqClusterReference:name: rabbitmq-cluster01namespace: rabbitmq-test虽然使用kuberct 命令在namespace可以获取到列表 但在rabbitmq中没有创建名字为queue-t1-my-app2的queue 故障排查 如果无法创建某些 RabbitMQ 拓扑对象可通过Messaging Topology Operator 的pod日志进行排查。 kubectl -n rabbitmq-system logs -l app.kubernetes.io/namemessaging-topology-operator另外还可以使用kubectl desribe命令查看资源的详细信息 kubectl describe queue queue-t1 -n rabbitmq-testName: queue-t1 Namespace: rabbitmq-test Labels: none Annotations: none API Version: rabbitmq.com/v1beta1 Kind: Queue Metadata:Creation Timestamp: 2024-10-25T09:46:27ZFinalizers:deletion.finalizers.queues.rabbitmq.com …Vhost: / Status:Conditions:Last Transition Time: 2024-10-25T09:46:27ZReason: SuccessfulCreateOrUpdateStatus: TrueType: ReadyObserved Generation: 2 Events:Type Reason Age From Message- - - -Normal SuccessfulDeclare 7h2m (x6 over 47h) queue-controller Successfully declare queue裸金属环境部署RabbitMQ OS及内核 [rootrbt01 ~]# cat /etc/redhat-release BigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)[rootrbt01 ~]# uname -a Linux rbt01 4.19.90-2107.6.0.0208.16.oe1.bclinux.x86_64 #1 SMP Tue Jul 18 10:06:28 CST 2023 x86_64 x86_64 x86_64 GNU/LinuxErlang和RabbitMQ版本匹配关系参考官方文档 https://www.rabbitmq.com/docs/3.13/which-erlang#redhat 本文档选用Erlangv26.2.5.4和RabbitMQ: v3.13.7 部署单实例 关闭防火墙 systemctl stop firewalld systemctl disable firewalld安装Erlang Erlang官方推荐使用各系统平台预安装包进行安装Euler 21.10使用以下rmp包进行安装下载地址https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.4/erlang-26.2.5.4-1.el7.x86_64.rpm 执行安装及通过验证版本号测试是否安装成功 # 安装 yum install erlang-26.2.5.4-1.el7.x86_64.rpm# 查看版本 erl -version Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 14.2.5.4部署RabbitMQ 二进制包下载地址 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 创建rabbitmq普通用户并设置密码用于管理rabbitmq useradd rabbitmq passwd rabbitmq解压下载好的二进制安装包到/opt目录下并做软连接 tar xf rabbitmq-server-generic-unix-3.13.7.tar.xz -C /opt/ cd /opt/ ln -s /opt/rabbitmq_server-3.13.7/ /opt/rabbitmq ln -s /opt/rabbitmq/sbin/* /usr/local/sbin/安装完成后默认没有配置文件可以从官网下载示例放到/opt/rabbitmq/etc/rabbitmq下 https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/docs/rabbitmq.conf.example 可以根据实际需要参考下面的官方文档进行参数配置 https://www.rabbitmq.com/docs/3.13/configure#config-items 修改rabbitmq 目录权限 chown –R rabbitmq:rabbitmq /opt/rabbitmq*使用rabbitmq账号并启动服务 su – rabbitmq rabbitmq-server -detached查看服务进程及监听端口号默认会监听567225672 两个端口 5672用于接受rabbitmq 客户端连接请求 25672 用于集群模式下集群间通信 关闭服务命令 rabbitmqctl shutdown启动web管理插件实现web 浏览器图形界面管理。 rabbitmq-plugins enable rabbitmq_management启动web管理插件插件后RabbitMQ会另外启动15672端口用户web服务。 使用服务器IP和15672端口访问web管理页面。 创建账号密码并设置权限 以下命令创建了admin账号并设置密码为Admin.123将其标记为administrator并设置了对/ 有所有权限 rabbitmqctl add_user admin Admin.123 rabbitmqctl set_user_tags admin administrator rabbitmqctl set_permissions -p / admin .* .* .*使用admin账号登录web管理页面 解决web管理界面提示 ⚠ All stable feature flags must be enabled after completing an upgrade. [Learn more] 导航到特性标志页面 在RabbitMQ管理界面的左侧菜单中找到并点击“Admin”选项。 在“Admin”页面中找到并点击“Feature Flags”选项。启用特性标志 在“Feature Flags”页面中你会看到一个列表其中包含了所有可用的特性标志。 检查每个特性标志的状态确保所有标记为“stable”稳定的特性标志都被启用。如果发现有未启用的稳定特性标志请将其启用。 列出功能标志 rabbitmqctl list_feature_flags要启用功能标志或所有当前禁用的标志 rabbitmqctl enable_feature_flag all | name 开启detailed_queues_endpoint 功能标志 rabbitmqctl enable_feature_flag detailed_queues_endpointFeature Flags介绍 官方文档https://www.rabbitmq.com/docs/3.13/feature-flags 功能标记是一种机制用于控制哪些功能在所有集群节点上被视为已启用或可用。如果启用了功能标记则其相关功能或行为也会启用。如果没有启用则集群中的所有节点都将禁用该功能行为。 功能标志子系统允许不同版本的 RabbitMQ 节点确定它们是否兼容然后相互通信尽管它们具有不同的版本因此可能具有不同的功能集或实现细节。 引入此子系统是为了允许在不关闭整个集群的情况下对集群成员进行滚动升级。 至此RabbitMQ单实例部署完成。 部署集群 服务器列表 3个节点保持一致 [rootrbt01 ~]# tail -n 3 /etc/hosts 192.168.18.11 rbt01 192.168.18.12 rbt02 192.168.18.13 rbt03分别在3个节点按照“单实例部署”步骤部署完成 参考上面章节 所有节点配置主机域名解析 vim /etc/hosts 192.168.18.11 rbt01 192.168.18.12 rbt02 192.168.18.13 rbt03节点间同步cookie文件 Erlang cookie 是用于RabbitMQ 节点和CLI 工具之间身份验证的共享密钥。该值存储在通常称为 Erlang cookie 文件的文件中。 服务帐户和运行用户使用的 Cookie 文件rabbitmqctl必须同步CLI 工具才能rabbitmqctl正常运行。集群中的所有节点必须具有相同的 Cookie 值Cookie 文件内容。 同步cooker前确保rabbitmq进程是关闭状态。 [rootrbt01 ~]# rabbitmqctl shutdown[rootrbt02 ~]# rabbitmqctl shutdown[rootrbt03 ~]# rabbitmqctl shutdown 在 UNIX 系统上cookie 通常位于$HOME/.erlang.cookie 如果使用rabbitmq普通用户启动rabbitmq服务.erlang.cookie文件的路径为/home/rabbitmq/.erlang.cookie .erlang.cookie 文件内容可以是自定义的字符串 将rbt01节点上/home/rabbitmq/.erlang.cookie 文件复制到rbt02,rbt03 [rootrbt01 ~]# scp .erlang.cookie rbt02:$PWD .erlang.cookie [rootrbt01 ~]# scp .erlang.cookie rbt03:$PWD .erlang.cookie 并确保所有节点/home/rabbitmq/.erlang.cookie的属主属组是rabbitmq 权限是400 chown –R rabbit:rabbit /home/rabbitmq/.erlang.cookie chmod 400 /home/rabbitmq/.erlang.cookie配置集群方式一在配置文件中增加如下配置 /opt/rabbitmq/etc/rabbitmq/rabbitmq.conf cluster_name rbt-cluster01 cluster_formation.peer_discovery_backend rabbit_peer_discovery_classic_configcluster_formation.classic_config.nodes.1 rabbitrbt01 cluster_formation.classic_config.nodes.2 rabbitrbt02 cluster_formation.classic_config.nodes.3 rabbitrbt03在所有节点启动服务集群将自动形成 [rabbitmqrbt01 ~]$ rabbitmq-server –detached[rabbitmqrbt02 ~]$ rabbitmq-server –detached[rabbitmqrbt03 ~]$ rabbitmq-server –detached在rbt01节点日志中查看有相关日志 2024-11-05 11:23:41.79389708:00 [info] 0.734.0 node rabbitrbt02 up 2024-11-05 11:23:43.06648008:00 [info] 0.734.0 rabbit on node rabbitrbt02 up 2024-11-05 11:24:01.29492708:00 [info] 0.734.0 node rabbitrbt03 up 2024-11-05 11:24:02.70585008:00 [info] 0.734.0 rabbit on node rabbitrbt03 up配置集群方式二不需在rabbitmq.conf配置文件定义使用以下命令配置集群 将rbt02节点加入集群 [rabbitmqrbt02 ~]$ rabbitmqctl stop_app Stopping rabbit application on node rabbitrbt02 ...[rabbitmqrbt02 ~]$ rabbitmqctl join_cluster rabbitrbt01 Clustering node rabbitrbt02 with rabbitrbt01[rabbitmqrbt02 ~]$ rabbitmqctl start_app Starting node rabbitrbt02 ...将rbt03节点加入集群 [rabbitmqrbt03 ~]$ rabbitmqctl stop_app Stopping rabbit application on node rabbitrbt03 ...[rabbitmqrbt03 ~]$ rabbitmqctl join_cluster rabbitrbt01 Clustering node rabbitrbt03 with rabbitrbt01[rabbitmqrbt03 ~]$ rabbitmqctl start_app Starting node rabbitrbt03 ... 查看集群状态 [rabbitmqrbt01 ~]$ rabbitmqctl cluster_status Cluster status of node rabbitrbt01 ... BasicsCluster name: rabbitrbt01 Total CPU cores available cluster-wide: 12Disk Nodesrabbitrbt01 rabbitrbt02 rabbitrbt03Running Nodesrabbitrbt01 rabbitrbt02 rabbitrbt03Versionsrabbitrbt01: RabbitMQ 3.13.7 on Erlang 26.2.5.4 rabbitrbt02: RabbitMQ 3.13.7 on Erlang 26.2.5.4 rabbitrbt03: RabbitMQ 3.13.7 on Erlang 26.2.5.4 …
文章转载自:
http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn
http://www.morning.kztts.cn.gov.cn.kztts.cn
http://www.morning.jyjqh.cn.gov.cn.jyjqh.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.ffptd.cn.gov.cn.ffptd.cn
http://www.morning.beijingzy.com.cn.gov.cn.beijingzy.com.cn
http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn
http://www.morning.mqxrx.cn.gov.cn.mqxrx.cn
http://www.morning.rkmsm.cn.gov.cn.rkmsm.cn
http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn
http://www.morning.nqbs.cn.gov.cn.nqbs.cn
http://www.morning.nmfwm.cn.gov.cn.nmfwm.cn
http://www.morning.rnnq.cn.gov.cn.rnnq.cn
http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn
http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn
http://www.morning.rsjf.cn.gov.cn.rsjf.cn
http://www.morning.jpzcq.cn.gov.cn.jpzcq.cn
http://www.morning.crsqs.cn.gov.cn.crsqs.cn
http://www.morning.nkyqh.cn.gov.cn.nkyqh.cn
http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn
http://www.morning.nnpwg.cn.gov.cn.nnpwg.cn
http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn
http://www.morning.mpgfk.cn.gov.cn.mpgfk.cn
http://www.morning.tsyny.cn.gov.cn.tsyny.cn
http://www.morning.lqypx.cn.gov.cn.lqypx.cn
http://www.morning.nzklw.cn.gov.cn.nzklw.cn
http://www.morning.gcrlb.cn.gov.cn.gcrlb.cn
http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn
http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn
http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn
http://www.morning.splcc.cn.gov.cn.splcc.cn
http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn
http://www.morning.rxkq.cn.gov.cn.rxkq.cn
http://www.morning.rgpsq.cn.gov.cn.rgpsq.cn
http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn
http://www.morning.mmkrd.cn.gov.cn.mmkrd.cn
http://www.morning.qgqck.cn.gov.cn.qgqck.cn
http://www.morning.phtqr.cn.gov.cn.phtqr.cn
http://www.morning.ggnrt.cn.gov.cn.ggnrt.cn
http://www.morning.yqrfn.cn.gov.cn.yqrfn.cn
http://www.morning.knryp.cn.gov.cn.knryp.cn
http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn
http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn
http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn
http://www.morning.htrzp.cn.gov.cn.htrzp.cn
http://www.morning.ppdr.cn.gov.cn.ppdr.cn
http://www.morning.sfcfy.cn.gov.cn.sfcfy.cn
http://www.morning.jpnfm.cn.gov.cn.jpnfm.cn
http://www.morning.lzbut.cn.gov.cn.lzbut.cn
http://www.morning.bxhch.cn.gov.cn.bxhch.cn
http://www.morning.cxnyg.cn.gov.cn.cxnyg.cn
http://www.morning.dfqmy.cn.gov.cn.dfqmy.cn
http://www.morning.saastob.com.gov.cn.saastob.com
http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn
http://www.morning.fjscr.cn.gov.cn.fjscr.cn
http://www.morning.skwwj.cn.gov.cn.skwwj.cn
http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn
http://www.morning.qmwzr.cn.gov.cn.qmwzr.cn
http://www.morning.kmqlf.cn.gov.cn.kmqlf.cn
http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn
http://www.morning.xqspn.cn.gov.cn.xqspn.cn
http://www.morning.psxwc.cn.gov.cn.psxwc.cn
http://www.morning.lhzqn.cn.gov.cn.lhzqn.cn
http://www.morning.rnzgf.cn.gov.cn.rnzgf.cn
http://www.morning.lpsjs.com.gov.cn.lpsjs.com
http://www.morning.zdsdn.cn.gov.cn.zdsdn.cn
http://www.morning.fglyb.cn.gov.cn.fglyb.cn
http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn
http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn
http://www.morning.rfbt.cn.gov.cn.rfbt.cn
http://www.morning.gpkjx.cn.gov.cn.gpkjx.cn
http://www.morning.kgnnc.cn.gov.cn.kgnnc.cn
http://www.morning.qbdsx.cn.gov.cn.qbdsx.cn
http://www.morning.cczrw.cn.gov.cn.cczrw.cn
http://www.morning.stmkm.cn.gov.cn.stmkm.cn
http://www.morning.yprnp.cn.gov.cn.yprnp.cn
http://www.morning.mhlsx.cn.gov.cn.mhlsx.cn
http://www.morning.supera.com.cn.gov.cn.supera.com.cn
http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn
http://www.morning.wwxg.cn.gov.cn.wwxg.cn
http://www.tj-hxxt.cn/news/274297.html

相关文章:

  • 网站建设首页包括什么印度域名注册网站
  • 管理网站建设小程序后端怎么开发
  • 网站建设需要c语言吗排名优化的公司
  • 签订网站建设合同需要注意什么广西住房和城乡建设网站
  • 如何给网站绑定域名wap网站建设免费
  • wordpress默认的h1标签放在哪里西安seo
  • 济南网站建设咨询小七python做网站框架
  • 淘宝u站怎么做网站的专业网页设计服务
  • 电商网站建设方案模板扫一扫内饰图片识别车型
  • 代备案网站空间网站建设与规划心得
  • 福建金融公司网站建设wordpress 正在跳转中 请稍等
  • 下载爱南宁官方网站全网营销型网站新闻
  • 石家庄学做网站建设培训班ui中国设计网站页面
  • 企业网站设计制作价格网页设计案例图片
  • 做网站每年要交不费用吗建设电影网站赚钱
  • 北海哪家做网站wordpress 会被取代吗
  • 给个做的网站intellij idea做网站
  • 网站制作的合同长春网站制作培训
  • 企业网络推广网站建设深圳建设交易平台官网
  • django 网站开发wordpress教程 主页
  • 网站不想被收录互联网营销师考试题及答案
  • 怎样下载模板网站wordpress推荐阅读区块
  • 广州住房公积金建设银行预约网站网站建设项目经验
  • 珠海做网站哪间好昆明网站建设哪家公司好
  • 石基网站建设旅行做攻略的网站
  • 东莞网站优化方法有哪些免费wordpress网站
  • 湖南建设长沙网站建设价格广州市第一建筑工程有限公司
  • 嘉兴市南湖区建设局网站网站建设_制作_设计
  • 历下区网站建设公司自己设计网页怎么做
  • 网站建设课程设计报告php正规的淘宝代运营公司