Hacker Newsnew | past | comments | ask | show | jobs | submit | cypres's commentslogin

As long as Dynamic Configuration is locked behind an nginx plus-only API, these are hollow words.

This is a must have feature for todays workloads (kubernetes or just very busy webservers) in production, and nginx will likely continue to lose market share to Envoy based alternatives where everything is configured through APIs, without needing to reload the server.


This is definitely addressed in the article. The relevant bits talk about moving features from the commercial version to the open source version, as well as the introduction of an open source nginx agent that can do the "dynamic config" on your behalf (via API I presume).

I agree with your sentiment though! I hope they do follow through as nginx is generally an easy sell to others when trying to fill holes in your tech stack and otherwise pretty bulletproof.


Good catch! I hope this is applicable to the kubernetes ingress controller.


Kubernetes will probably drop Ingress in favor of API Gateway in two years.


That's just the API layer for configuration, you still need a proxy to route. Nginx will still stay relevant


yeah, hopefully it helps replace a bunch of lua code from ingress-nginx


Some additional context to what I'm referring, in this old blog post from 2015, nginx describe exactly why the dynamic configuration feature is important, and what's wrong with just reloading (draining the old process of connections). https://www.nginx.com/blog/using-nginx-plus-to-reduce-the-fr...

For rolling deployments, it can cause repeated configuration changes exacerbating the problem, some workloads more affected from this than others of course. The nginx ingress controller makes this clear

https://docs.nginx.com/nginx-ingress-controller/intro/nginx-...

> Every time the number of pods of services you expose via an Ingress resource changes, the Ingress Controller updates the configuration of the load balancer to reflect those changes. For NGINX, the configuration file must be changed and the configuration subsequently reloaded. For NGINX Plus, the dynamic reconfiguration is utilized, which allows NGINX Plus to be updated on-the-fly without reloading the configuration. This prevents increase of memory usage during reloads, especially with a high volume of client requests, as well as increased memory usage when load balancing applications with long-lived connections (WebSocket, applications with file uploading/downloading or streaming).

edit: formatting


Just to make things interesting, there’s actually two Ingress controllers based on NGINX, one led by the NGINX company and one under Kubernetes organisation. The Kubernetes-led controller ‘ingress-nginx’ is substantially enhanced with OpenResty integration and doesn’t have the issue with reloads that the blog refers to.


You can use a switch to start the nginx process and tell it to stop accepting new connections on the old one without killing it. Forgot the switch but its in the docs. Don’t know if this is well known but this is how I made a poor mans dynamically configurable nginx like 7 years ago using the free version. It worked great


I think this is known, and the Kubernetes Ingress Controller leverages this, however you are leaving that other process behind until connections drain. If you are changing configurations often enough, you might have many old processes lying around, consuming resources and using old settings. So it's not ideal.


Reload signal?

> Once the master process receives the signal to reload configuration, it checks the syntax validity of the new configuration file and tries to apply the configuration provided in it. If this is a success, the master process starts new worker processes and sends messages to old worker processes, requesting them to shut down. Otherwise, the master process rolls back the changes and continues to work with the old configuration. Old worker processes, receiving a command to shut down, stop accepting new connections and continue to service current requests until all such requests are serviced. After that, the old worker processes exit.

http://nginx.org/en/docs/beginners_guide.html#control


OpenResty (nginx distribution with lua JIT plugin built in) can do this


> This is a must have feature for todays workloads (kubernetes or just very busy webservers) in production

So something you are making money from? How do you propose to keep it secure and maintained as FOSS? Someone else's donations?

If it is so critical, surely paying a few dollars won't break your business model.


> I have Reader Mode set to enabled by default on Safari mobile

I didn't know you can do that, thank you!


There are unsubscribe links on all their e-mails and I think the automatic unsubscribe feature too.

What I really want to know is if the OP actually tried to unsubscribe or just went directly to twitter about still receiving e-mails after cancelling his account for that nice twitter/HN buzz?


I was expecting a static binary when I downloaded the CLI, but I got a huge load of node.js files and modules. Consider packaging your node.js application up, I haven't tried it but https://github.com/nexe/nexe looks promising.


Thanks for the link. v0 cli was written in gerbil scheme (http://cons.io) but I couldn't get it to statically link on linux so I'd still have deps in the form of dynamic libs. Then I found oclif which while depending on node has a lot of what I need and will allow me to ship/iterate faster ... If the spec/features/api was fixed, I'd write the thing in golang if only for the static binaries and cross compiling but it's a relatively joyless/cumbersome language IME, so node for now at least.


I was writing a similar cli tool [1] to manage the git repositories on my own server. If you want portability, it should be fairly easy to write the cli interface in plain sh or bash, especially when most of the operations could be done on the server side. I am not sure if there is a reason to use a compiled language for this.

[1]: https://0x0.st/8zs0


Thanks for sharing that's awesome!

Bookmarked. I'll think more about implementing it as a shell script.


This is the correct answer.


Case in point; Bitcoin


No. Although some argue that SMS 2FA is already broken, due to SS7 attacks. I don't see how this makes it any worse.


Title is misleading. No "hijacking" is taking place, they are obtaining the Cell ID (approximate location) and IMEI info from the phone, by sending it a malicious SMS containing SIM card instructions. Details; https://www.adaptivemobile.com/blog/simjacker-next-generatio...

A better title IMHO; SIM Vulnerability leads to information disclosure via malicious SMS.


Seems like a highjack may be possible actually... Here is a list of other things they listed they can do with the simjacker exploit that goes beyond simple data exfiltration:

    > PLAY TONE
    > SEND SHORT MESSAGE
    > SET UP CALL
    > SEND USSD
    > SEND SS
    > PROVIDE LOCAL INFORMATION
    >     Location Information, IMEI, Battery, Network, Language, etc
    > POWER OFF CARD
    > RUN AT COMMAND
    > SEND DTMF COMMAND
    > LAUNCH BROWSER
    > OPEN CHANNEL
    >     CS BEARER, DATA SERVICE BEARER, LOCAL BEARER, UICC SERVER MODE, etc
    > SEND DATA
    > GET SERVICE INFORMATION
    > SUBMIT MULTIMEDIA MESSAGE
    > GEOGRAPHICAL LOCATION REQUEST


running arbitrary AT commands gives lots of potential... i wish they would provide (a lot) more details about their claims :(


When I recently watched this talk, https://www.youtube.com/watch?v=31D94QOo2gY, I wondered about that, that is if malicious STK app from network operator could execute AT commands on phone (and compromise device using commands from https://www.usenix.org/node/217625).

But from what I gathered from cursory search, RUN AT COMMAND isn't supported by most devices. (ETSI TS 102 223 states "This clause applies if class "b" is supported by the terminal and enabled by the subscriber through the terminal. ")


Why in the world is this API surface even available, and why aren't Google / Apple / handset manufacturers scrambling to patch this?


I guess it is available to the baseband, not the actual iser facing OS.


Google and Apple can't do anything to mitigate this.

Edit: The following is incorrect. SIM cards are self-contained computers. Among other things, they're responsible for encrypting and decrypting communications between your phone and your carrier. This means that a SIM card will see the contents of a message before your OS or other hardware in your phone does. These exploits should work just as well against "dumb" phones as smartphones because they're not attacking the actual phones.

This API exists because SIM cards are self-contained computers; they need a way to communicate with everything else.


That's not the case. SIM cards hold the permanent key for authentication and perform key derivation. Mobile data doesn't pass the SIM card; it does not perform the encryption and decryption.


Good point--I tend to forget that. The rather vague article seems to indicate the actual SMS content is being sent to the SIM, though. Why is that?


Dumb/feature phones saved SMS messages to the SIM card as simple cards have a limited amount of memory that is dedicated to a crude phonebook and SMS store. Smartphones and smarter feature phones (can) use their own storage for that. You could disable/enable the phonebook/save to SIM features on feature phones and early smartphones.

(I'm talking about win CE and symbian phones being early smartphones here)


A


For me, sending SMS messages on your behalf (without you even knowing) or dialling premium rate numbers is definitely hijacking.


Ok, we'll go with that title above.


A


VISMA e-conomic | Platform, UX, Mobile, etc | Copenhagen, Denmark | ONSITE | VISA Do you feel motivated about making complex things simple? Do you want to demonstrate your skills in the most used cloud based accounting platform in Denmark?

Visma e-conomic resides on Christianshavn in central Copenhagen. We build and design the cloud based accounting system e-conomic.dk that helps more than 100,000 happy companies run their business. We are 170 employees from 20+ nationalities.

The development department consists of 40+ people, working with technologies like C#, Node.js, React, MS-SQL, Swift, Kotlin, MongoDB and Kubernetes.

Hiring ie:

* Platform Engineers - https://www.e-conomic.dk/om/job/engineer-join-our-platform-t...

* User Experience Designer - https://visma.easycruit.com/intranet/dk/vacancy/2114827/1448...

We serve more than 50 million requests a day, push to production several times a week, love to talk about (and write) code, believe strongly in automation, and are driven by a desire to measure and monitor in order to constantly improve our product.

For more information and additional jobs, please visit https://e-conomic.com/joinus


VISMA e-conomic | Platform, Full Stack Engineer, Machine Learning, etc | Copenhagen, Denmark | ONSITE | VISA

Do you feel motivated about making complex things simple? Do you want to demonstrate your skills in the most used cloud based accounting platform in Denmark?

Visma e-conomic resides on Christianshavn in central Copenhagen. We build and design the cloud based accounting system e-conomic.dk that helps more than 100,000 happy companies run their business. We are 170 employees from 20+ nationalities.

The development department consists of 40+ people, working with technologies like C#, Node.js, React, MS-SQL, Swift, MongoDB and Kubernetes.

Hiring ie:

* Platform Engineer - https://www.e-conomic.dk/om/job/engineer-join-our-platform-t...

* Full Stack Developer - https://www.e-conomic.dk/om/job/full-stack-developer

* Data Scientist for Machine Learning - https://www.e-conomic.dk/om/job/data-scientist-our-machine-l...

* Lead DevOps Engineer - https://www.e-conomic.dk/om/job/lead-devops-engineer

We serve more than 50 million requests a day, push to production several times a week, love to talk about (and write) code, believe strongly in automation, and are driven by a desire to measure and monitor in order to constantly improve our product.

For more information and additional jobs, please visit https://e-conomic.com/joinus


I had no idea you could use C-[ as ESC


It's also a kinda crappy alternative, because it's not possible on a large number of non-English keyboard. Ctrl+c is also an option, although I think there's a slight difference.


ESC is 0x1B, traditionally the CTRL key reset the two highest bit of the ASCII code, [ is 0x5B, if you reset the two highest bits of 0x5B you get 0x1B which is why ESC and CTRL-[ are the same thing.

CTRL-C is completely different.


Yep, ctrl+c is different than esc


I am on Windows and it seems that not every program accepts C-[ as ESC. However Vim in Cygwin does accept it as ESC.


I wonder how many vim users have tried using CTRL + [ for the first time today. Muscle memory being what it is I fully expect that nobody will swap over to this new and improved Apple way of pressing the Escape key.


Much to my surprise, after I was forced by circumstances to use Ctrl+[ for a month or so, I found I didn't actually want to go back to Esc.

Had it only been a week or two I suspect my muscle memory wouldn't've shifted though.


And vi too - works just fine, but you have a valid point about muscle memory, which is pretty much the only kind of memory many of us have left when it comes to vi-like editors, since the key sequences disappeared from our brains decades ago!


That is kind of cool! It is much easier to hit then ESC all the way up in the northwest corner of my keyboard.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: