You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apisix.apache.org by Kwanhur Huang <hu...@163.com> on 2022/04/26 12:46:00 UTC

Re: [DISCUSS][Change] Support set redirect server port under http_to_https mode in plugin redirect

hi, the community

About this issue, to achieve that redirect the specified server port, some information updating:

Plugin redirect support three mode http_to_https, uri and regex_uri, only one of them can be specified [1].

Under `uri` mode, it has supported to specify server port and reach the target, just like mentioned example.

Under `http_to_https` mode, to reach the target, it needs one way to fetch the redirect server port.
Now has two solutions:
a. Add a property port.
b. Reusing property uri.

solution a: it’s simple to achieve, but its extensibility not enough, if need to specify redirect server name, has to add another property.

solution b: it has to specify properties both http_to_https and uri, 
this breaks the original limitation, only one mode can be specified like the test case 21 [2], 
but reusing the uri property, its extensibility is enough.


Hopefully hear your voice.


[1] https://apisix.apache.org/docs/apisix/plugins/redirect <https://apisix.apache.org/docs/apisix/plugins/redirect>
[2] https://github.com/apache/apisix/blob/8df9a7d26585f30f273f819a21c96cf8c9104349/t/plugin/redirect.t#L487 <https://github.com/apache/apisix/blob/8df9a7d26585f30f273f819a21c96cf8c9104349/t/plugin/redirect.t#L487>


Kwanhur Huang
TL;DR

> 2022年3月25日 上午11:25,Chao Zhang <zc...@gmail.com> 写道:
> 
> Hi,
> 
> Agree with this one.
> 
> Chao Zhang
> https://github <https://github/>.com/tokers
> 
> On March 25, 2022 at 09:16:00, YuanSheng Wang (membphis@apache.org <ma...@apache.org>) wrote:
> 
>> I prefer this style, it's easier to read. 
>> 
>> "plugins": { 
>> "redirect": { 
>> "uri": "https://$host:9443$request_uri <https://$host:9443$request_uri>", 
>> "ret_code": 301 
>> } 
>> } 
>> 
>> 
>> 
>> On Thu, Mar 24, 2022 at 10:04 PM Kwanhur Huang <huang_hua2012@163.com <ma...@163.com>> 
>> wrote: 
>> 
>> > hi, the community 
>> > 
>> > Issue #4400 <https://github.com/apache/apisix/issues/4400 <https://github.com/apache/apisix/issues/4400>> point out 
>> > that, expectedly modify default redirect server port. Original description: 
>> > 
>> > Can the port be set for http_to_https in the redirect plugin? 
>> > 
>> > The default https port of apisix is 9443, but after I set http_to_https to 
>> > true, 
>> > visiting "http://test.com:9080/service/ <http://test.com:9080/service/> <http://test.com:9080/service/ <http://test.com:9080/service/>>" 
>> > will redirect to "https://test.com/service/ <https://test.com/service/> <https://test.com/service/ <https://test.com/service/>>", 
>> > my expected to jump to "https://test.com:9443/service/ <https://test.com:9443/service/> < 
>> > https://test.com:9443/service/ <https://test.com:9443/service/>>" 
>> > 
>> > 
>> > From comment < 
>> > https://github.com/apache/apisix/pull/6686#issuecomment-1075798013 <https://github.com/apache/apisix/pull/6686#issuecomment-1075798013>> posts 
>> > that better to extend `uri` attribute. This will bring a big change under 
>> > http_to_https mode, as my explanation here < 
>> > https://github.com/apache/apisix/pull/6686#issuecomment-1075886567 <https://github.com/apache/apisix/pull/6686#issuecomment-1075886567>>. 
>> > 
>> > 
>> > Key-point Only one of http_to_https, uri or regex_uri can be specified. 
>> > 
>> > Extends uri under http_to_https mode, it’ll break this limitation. 
>> > 
>> > 
>> > Hoping hear your voice. 
>> > 
>> > 
>> > Kwanhur Huang 
>> > TL;DR 
>> > 
>> > 
>> > 
>> > 
>> > 
>> > Kwanhur Huang 
>> > TL;DR 
>> > 
>> > 
>> 
>> --  
>> 
>> *MembPhis* 
>> My GitHub: https://github.com/membphis <https://github.com/membphis> 
>> Apache APISIX: https://github.com/apache/apisix <https://github.com/apache/apisix>