Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverse proxy support does not work for subpath #82

Open
andrew-tpz opened this issue Jun 22, 2022 · 3 comments
Open

Reverse proxy support does not work for subpath #82

andrew-tpz opened this issue Jun 22, 2022 · 3 comments

Comments

@andrew-tpz
Copy link

Apache:

ProxyPass         /unpub/  http://localhost:4000/
ProxyPassReverse  /unpub/  http://localhost:4000/

Unpub params

--proxy-origin=http://localhost/unpub/

Browser Console

GET http://localhost/main.dart.js [HTTP/1.1 404 Not Found 2ms]
@sIspravnikov
Copy link
Contributor

sIspravnikov commented Jun 29, 2022

You need http headers, i guess.
See comment on 5a7aaa0
On my env i've done with headers, like i've wrote in this PR #80
You might want to update this instructions with apache solution.

@andrew-tpz
Copy link
Author

There is no subpath in that comment, just another root domain.

Problem 1 - "proxy-origin" does not affect static html part.
index.html has lines

<base href="/" />
...
<script defer src="main.dart.js"></script>

As I understand:

* browser requests http://localhost/unpub/
* apache redirects to http://localhost:4000
* unpub responses with index.html
* browser parses html and requests http://localhost/main.dart.js instead of http://localhost/unpub/main.dart.js
* apache doesn't redirect request and responses with 404

Problem 2 - Uri.resolve(reference) include subpath in the result only in one case; Uri ends with '/' and reference doesn't start with '/'.

Uri.parse('http://localhost/unpub/').resolve('/api/smth').toString()
returns 'http://localhost/api/smth'
instead of 'http://localhost/unpub/api/smth'

So, App._versionToJson generates wrong archive_url:

  Map<String, dynamic> _versionToJson(UnpubVersion item, shelf.Request req) {
...
      'archive_url': _resolveUrl(req, '/packages/$name/versions/$version.tar.gz'),

@ChenFan418
Copy link

@andrew-tpz how to solve this problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants