原文链接:https://opendev.org/starlingx/ha/src/commit/045a37c672a92f1412629a176f51183c88882e61/service-mgmt-api/sm-api/sm_api/cmd/api.py

make_server 接口配置 handler_class
#!/usr/bin/env python
# -*- encoding: utf- -*-
#
# vim: tabstop= shiftwidth= softtabstop=
#
# Copyright Hewlett-Packard Development Company, L.P.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) - Wind River Systems, Inc.
# """The Service Management API.""" import logging
import os.path
import sys
import time
import socket from oslo_config import cfg
from wsgiref import simple_server from sm_api.api import app
from sm_api.common import service as sm_api_service
from sm_api.openstack.common import log CONF = cfg.CONF def get_handler_cls():
cls = simple_server.WSGIRequestHandler # old-style class doesn't support super
class MyHandler(cls, object):
def address_string(self):
# In the future, we could provide a config option to allow reverse DNS lookup
return self.client_address[] return MyHandler def get_ipv6_server_cls():
cls = simple_server.WSGIServer class MyServerClassIPv6(cls, object):
address_family = socket.AF_INET6 return MyServerClassIPv6 def main():
# Parse config file and command line options, then start logging # Periodically check every minute for want_sm_config
LOG = log.getLogger(__name__) sm_api_service.prepare_service(sys.argv) # Build and start the WSGI app
host = CONF.sm_api_bind_ip or socket.gethostname()
port = CONF.sm_api_port addrinfo_list = socket.getaddrinfo(host, port)
addrinfo = addrinfo_list[]
socket_family = addrinfo[] server_cls = simple_server.WSGIServer
if socket.AF_INET6 == socket_family:
server_cls = get_ipv6_server_cls() wsgi = simple_server.make_server(host, port,
app.VersionSelectorApplication(),
server_class=server_cls,
handler_class=get_handler_cls()) LOG.info("Serving on http://%(host)s:%(port)s" %
{'host': host, 'port': port})
LOG.info("Configuration:")
CONF.log_opt_values(LOG, logging.INFO) try:
wsgi.serve_forever()
except KeyboardInterrupt:
pass

WSGI 配置禁止反向DNS查找的更多相关文章

  1. Windows下配置Squid反向代理服务器

    Squid是一款类Unix系统下非常流行的服务器软件,其最重要的功能就是在客户端和服务端之间建立缓存.因而Squid可以用作反向代理,部署多级缓存或者搭建CDN等,无论名称是什么,本质上都是一样的.目 ...

  2. 优化网站设计(九):减少DNS查找的次数

    前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议.这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题. 作为通用的原则,雅虎的工程师团队曾经给出过35个 ...

  3. 配置LANMP环境(7)-- 配置nginx反向代理,与配置apache虚拟主机

    一.配置nginx反向代理 1.修改配置文件 vim /etc/nginx/nginx.conf 在35行http下添加一下内容: include /data/nginx/vhosts/*.conf; ...

  4. CentOS配置禁止root用户直接登录

    Linux的默认管理员名即是root,只需要知道ROOT密码即可直接登录SSH.禁止Root从SSH直接登录可以提高服务器安全性.经过以下操作后即可实现.本文适用于CentOS.Debian等Linu ...

  5. DNS查找域名的过程

    当我们在浏览器输入一个url地址时,需要获取到这个url的域名,本篇文章主要介绍了关于DNS查找解析域名的过程的一些东西. 关于DNS 不清楚DNS的小伙伴可以点这里:关于域名系统DNS解析IP地址的 ...

  6. Web前端性能优化教程06:减少DNS查找、避免重定向

    本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看:  一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...

  7. Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  8. 配置域从DNS服务器以及缓存DNS服务器

    一.域从DNS服务器的作用 我们在之前上一篇随笔里有提到,DNS服务器一般有三种类型,一个是Primary DNS Server(主DNS服务器),一个是Secondary DNS Server(从D ...

  9. 配置域主DNS服务器

    一.DNS服务器的类型 ①Primary DNS Server(Master) 一个域的主服务器保存着该域的zone配置文件,该域所有的配置.更改都是在该服务器上进行,本篇随笔要讲解的也是如何配置一个 ...

随机推荐

  1. Spring+hibernate+JSP实现Piano的数据库操作---5.JSP页面

    1.index.jsp <%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/3/25 Time: 14:09 To change thi ...

  2. 《Python编程初学者指南》高清PDF版|百度网盘免费下载|Python基础

    <Python编程初学者指南>|百度网盘免费下载| 提取码:03b1 内容简介 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python可以用于很多的领域,从科学计 ...

  3. matplotlib绘制子图

    fig,subs = plt.subplots(2,2) subs[0][0].plot(data_math_C1) subs[0][0].set_title('C_1 曲线') subs[0][1] ...

  4. PHP chunk_split() 函数

    实例 在每个字符后分割一次字符串,并在每个分割后添加 ".": <?php$str = "Hello world!";高佣联盟 www.cgewang.c ...

  5. luogu P3829 [SHOI2012]信用卡凸包 凸包 点的旋转

    LINK:信用卡凸包 当 R==0的时候显然是一个点的旋转 之后再求凸包即可. 这里先说点如何旋转 如果是根据原点旋转的话 经过一个繁杂的推导可以得到一个矩阵. [cosw,-sinw] [sinw, ...

  6. PAM学习笔记

    想了想 还是要先把字符串的东西先都学完告一段落了再说 时间不多了 加油~. PAM 回文自动机 比SAM简单到不知道哪里去了. 回文自动机和其他自动机一样有字符集 有状态 有转移. 一个字符串的回文自 ...

  7. 排查JVM内存泄漏的命令

    1. jps 使用 jps -l -m 获取到当前jvm进程的pid,通过上述命令获取到了服务的进程号 jps(JVM Process Status Tool):显示指定系统内所有的HotSpot虚拟 ...

  8. jar包冲突解决

    背景: 新需求需要引入新jar包,引入后发现本地启动没有报错,发到测试环境提示某个bean无法创建,nested exception is java.lang.VerifyError: Bad typ ...

  9. python 版本 jaeger-client 导入失败 jaeger-client-python

    环境为: OS: ubuntu18.04 Python: 3.6 问题原因: 尝试使用 jaeger-client-python,官方给出的示例(https://github.com/jaegertr ...

  10. 怎么用 Solon 开发基于 undertow jsp tld 的项目?

    Solon 开发 jsp 还是简单的,可以有 jetty 启动器 或者 undertow 启动器.此文用 undertow + jsp + tld 这个套路搞一把: 一. 开始Meven配置走起 用s ...