Project

General

Profile

Actions

Feature #13718

closed

rgw:CivetWeb http and https be support in the same time.

Added by weijun duan over 8 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

radosgw/CivetWeb can not support listen http port and https port in the same time

CivetWeb support it by configure:

listening_ports 80, 443s

In the radosgw CivetWeb, configure it like this, but not work.

rgw frontends = "civetweb port=80,443s ssl_certificate=/home/dwj/ssl/server.pem" 

it support just one in the same time.

i modify it support the http and https in the same time use the conf blow, because the "," was be used for other uses.

rgw frontends = "civetweb port=80 sport=443 ssl_certificate=/home/dwj/ssl/server.pem" 

it don't need 's' int the https ports.

Actions #2

Updated by Yehuda Sadeh over 8 years ago

I took a look at your pull request, overall it looks ok. My question is though whether isn't specifying multiple frontends enough, e.g.:

rgw frontends = civetweb port=80, civetweb port=443s ssl_certificate=/home/dwj/ssl/server.pem

Actions #3

Updated by Marcus Watts over 8 years ago

I like the idea of not starting up multiple copies of civetweb. This seems a bit too specialized though. What if I want to listen to 2 http ports?

Actions #4

Updated by Dean Hamstead almost 8 years ago

Yehuda Sadeh wrote:

I took a look at your pull request, overall it looks ok. My question is though whether isn't specifying multiple frontends enough, e.g.:
[...]

This seems like it should work, but the second definition of civetweb segfaults.

Similarly, if i set up another radosgw entry in the ceph.conf - that civetweb segfaults.

Perhaps simply allowing the, character to be escaped, so that that port=80,443s is passed through as-is would be the best solution? i.e. port="80,443s" port=80\,443s

Actions #5

Updated by Marcus Watts almost 8 years ago

I have a slightly different fix here,
https://github.com/ceph/ceph/pull/8339

I think this works better with the code. I used "+" instead of "\," I thought about the latter, but implementing \ meant messing with code that's already used a lot of ways (get_str_list()). Also explaining to people , vs. \, is actually not ideal.

Setting up multiple front-ends does have some attractions - but I think more than just the segfault would have to be fixed. Looks like each frontend gets its own separate thread pool, and we're now finding that thread pool size is a significant tuning variable and production constraint for radosgw.

Actions #6

Updated by Dean Hamstead almost 8 years ago

It would be terrific to have this included ASAP

Actions #8

Updated by Casey Bodley over 6 years ago

  • Status changed from New to Resolved
Actions

Also available in: Atom PDF