我在Nginx中有一个定义,在不同的端口,我需要不同的SSL客户端验证选项。
当我连接到:443 / location1时,Nginx将请求客户端证书,但会因“HTTP 400,错误请求,需要客户端证书”而失败。似乎NGinx使用端口444的服务器规则在连接上有“ssl_verify_client off”,但在路由上,NGinx检查是否给出了客户端证书,因为它是端口443的规则,表示客户端验证是必需的,然后在实际的HTTP请求中失败。
我挖了一下,似乎找不到任何关于此的文档。显然相同的IP:PORT是一个问题,但到目前为止所有的一切都通过PORT指示我可以更改配置,但似乎并非如此。
def data_to_features_par(my_file, features_file):
def feature_processor(row):
time.sleep(20)
def feed(queue, my_file, number_of_consumers):
with open(snapshot_file) as sp:
reader = csv.reader(sp)
for row in reader:
queue.put(row, block=True)
for x in range(number_of_consumers):
queue.put(None)
def calc(queueIn, queueOut):
while True:
try:
par = queueIn.get(block=True)
counter += 1
if par is None:
queueOut.put(None)
break
res = feature_processor(par) # time-consuming computations
queueOut.put(res)
except Empty:
pass
def write(queue, output_file):
with open(output_file, "w") as fp:
writer = csv.writer(fp)
while True:
try:
res = queue.get(block=True)
if res is None:
break
writer.writerow(res)
except Empty:
pass
cpu_count = multiprocessing.cpu_count()
workerQueue = Queue()
writerQueue = Queue()
calc_proc_count = cpu_count-2
feedProc = Process(target=feed, args=(workerQueue, my_file, calc_proc_count))
calcProc = [Process(target=calc, args=(workerQueue, writerQueue)) for _ in xrange(calc_proc_count)]
writProc = Process(target=write, args=(writerQueue, features_file))
feedProc.start()
for p in calcProc:
p.daemon = True
p.start()
writProc.start()
try:
feedProc.join()
for p in calcProc:
p.join()
writProc.join()
except KeyboardInterrupt:
feedProc.terminate()
for p in calcProc:
p.terminate()
writProc.terminate()
答案 0 :(得分:0)
我最终想通了。
客户端拒绝是强制性的,但可以在建立连接后或握手期间发生。