Bug 234761 - www/nginx: Add 3rd party websockify module
Summary: www/nginx: Add 3rd party websockify module
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jochen Neumeister
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-08 18:18 UTC by noah.bergbauer
Modified: 2019-02-12 11:48 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (joneum)


Attachments
nginx-websockify.patch (2.21 KB, text/plain)
2019-01-08 18:18 UTC, noah.bergbauer
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description noah.bergbauer 2019-01-08 18:18:24 UTC
Created attachment 200926 [details]
nginx-websockify.patch

I found this module (https://github.com/tg123/websockify-nginx-module) rather useful and would like to see it added to the port. Patch attached.
Comment 1 Jochen Neumeister freebsd_committer 2019-01-11 08:27:30 UTC
Hello Noah and thanks for the PR :-)

I'm having trouble with this patch. The last update was January 22, 2018, and also just an update to the README.
The last changes were 2015 and the beginning of 2016.
I think it's not good to install this module because it will not be taken care of anymore. sorry
Comment 2 noah.bergbauer 2019-01-11 11:44:30 UTC
Hi Jochen. While I understand your concerns I'd like to point out that the author responded to an issue on github just 13 days ago.

The module performs a simple task which should be a core feature of nginx in my opinion (considering that it can already proxy both websockets and raw tcp, just not the crossover) without any bells and whistles - it shouldn't require any maintenance as long as there isn't an unexpected security issue or nginx makes a breaking change.

But if that still doesn't convince you I can offer to fork and maintain this module in case the author steps down - just shoot me an email. Of course it's your decision in the end and I respect that (after all I don't have to maintain the port) but the fact is that I will be using this for the foreseeable future so I figured I might as well send a patch - also maintaining my own patches to the ports tree seems a little inconvenient long term.
Comment 3 Jochen Neumeister freebsd_committer 2019-01-15 17:48:28 UTC
Heya Noah :-)

Of course, I am always happy when a new module is to be inserted.
The problem is that most of the time the module will only be used by one person. So NGINX is getting bigger and more confusing.
Are the simple suggestions for NGINX for websocket not for your problem?

https://www.nginx.com/blog/websocket-nginx/
http://nginx.org/en/docs/http/websocket.html

It's always good to see 3rd party modules here:
https://www.nginx.com/resources/wiki/modules/

Here is another websocket 3rd party module: Nchan. Does this help you?
Comment 4 noah.bergbauer 2019-01-15 18:15:38 UTC
Hi Jochen, to clarify: the websockify module accepts a websocket connection from the client but then proxies this traffic to a plain raw TCP backend. I'm not aware of any way to have nginx do this without this module, but it is extremely useful to tunnel native non-web protocols (like for example VNC) into a web browser.

Your suggestions all relate to regular websocket proxying, that is, having a websocket to the backend as well. I know that this works without any extra modules but as I said, this is not what the the websockify module is for.

While there are alternatives in ruby or nodejs that can be used to perform this task none of them are as simple and elegant as just configuring the nginx you're running anyways to do the job. This is why I think this module would be a good fit for the port: it's simple, elegant and extremely helpful if you need it.

Of course I understand that you don't want to bloat the port with lots of modules that nobody uses, but given both how useful and simple it is I think this module is worth it.
Comment 5 Jochen Neumeister freebsd_committer 2019-01-15 18:20:51 UTC
Heya Noah :-)
Thank you for the explanation. It makes sense to use something like that. Please allow me some time to check it out. I also have new versions of other 3rd party modules here. 
I think I will do this with the next commit
Comment 6 commit-hook freebsd_committer 2019-02-12 11:46:57 UTC
A commit references this bug:

Author: joneum
Date: Tue Feb 12 11:46:34 UTC 2019
New revision: 492777
URL: https://svnweb.freebsd.org/changeset/ports/492777

Log:
  - Add 3rd party websockify module
  - Update some 3rd party module

  PR:		235209 234761
  Sponsored by:	Netzkommune GmbH

Changes:
  head/www/nginx/Makefile
  head/www/nginx/Makefile.extmod
  head/www/nginx/Makefile.options.desc
  head/www/nginx/distinfo