Recreating default exchanges in RabbitMQ - rabbitmq

So... I was messing around on my localhost, and deleted the "/" vhost. Now I'm curious: What do you need to do to recreate the default exchange? Is it possible, or is rabbitmqctl reset the only recourse?

RabbitMQ adds the default exchanges to every new vhost, so you can just re-create the vhost and the default exchanges will be there.
I verified this just now, by deleting the / vhost on my local RMQ and then re-creating it. all of the default exchanges are back, the way they should be.
also, FWIW, I would recommend not using the / vhost anyways. you should be creating a new vhost for each system you are building. so, really, it doesn't matter that you deleted / because you shouldn't be using it.

Related

Redis users getting deleted automatically

i have a redis instance which is installed as a linux service. I have created few users with some RBAC policies. Everything works fine as expected for few days, but suddenly all my newly created users get deleted due to which my application connecting to redis is throwing exception.
Also, no other person can access this server except me.
Can someone help me how to persist the newly created users in redis for lifetime?
Everything works fine as expected for few days, but suddenly all my newly created users get deleted
After ruling out other trivial reasons (connecting to the wrong instance, for example), I believe your Redis service was simply restarted for some reason, perhaps after a server restart.
Once an ACL rule is created/modified/updated, the configuration needs to persisted to a file to make it survive a Redis restart; to do that, run either:
CONFIG REWRITE, if you are specifying your ACL users / rules inside your main configuration file (the default option);
ACL SAVE, if you are using an external ACL file.
To learn more about how Redis deals with ACLs, be sure to check out the official documentation.

When one domain is being hit, another is loaded

I just removed some virtual hosts and restored them from backup.
I noticed that no matter what domain from the following i hit:
kidsclubpaidika.gr
ypsilandio.gr
varsa.gr
always my hit gets instantly redirected to domain kidsclubpaidika.grinstead.
Why is this happening?
I use Webmin/virtualmin btw.
here is my relevant httpd.conf https://pastebin.com/vzwbzTh8
There's a FAQ about this kind of problem: https://www.virtualmin.com/documentation/web/troubleshooting#toc-the-wrong-site-shows-up-V5JtxdKg
The short description of the problem is that when combining VirtualHosts that use IP addresses and *, the way Apache decides what to show is unintuitive (to put it mildly). Mixing * and IP-based VirtualHosts is, thus, not recommended. So, find the virtual hosts that use * and switch them to IPs, or find all the IPs and switch them to *. Don't mix and match. I usually recommend using IPs, but either works, as long as you only have one IP.
If you have a default site (e.g. 000-default on Ubuntu/Debian), disable it. In a virtual hosting environment, "default" doesn't really have the same meaning and can lead to confusing results. The Virtualmin installer will do that for you, but doing a dist upgrade will lead to config files being overwritten and that site being re-enabled.

Where does dump.rdb belong?

I remember playing around with some settings and I believe it changed the location of dump.rdb. Now, dump.rdb auto-magically appears at the root of my projects.
Where does it belong, and how would I return it there? Also, how does this location change when in a production environment?
Where does it belong?
Wherever you want.
The default directory is ./, meaning the directory where the Redis server got started from.
Edit:
* I am modifying your second question (asked in comment) a little bit.
Is it possible to change to location of dump.rdb? How?
Yes, it is possible. There two possible ways I can think of.
1.
Modify redis configuration file (e.g. redis.conf) and restart redis server. This way, every restart after this one will use the new directory. But redis will not reload any previous data at first restart (because there will not be anything to reload from).
To reload previous data, previous dump.rdb would have to be moved to new location manually before restarting the server.
2.
Set new directory by CONFIG SET command. E.g.
CONFIG SET dir path/to/new/directory
* Note that the path has to be a directory.
That's it! But this way is not permanent because server restart will use the old directory.
To make new directory permanent, execute CONFIG REWRITE to rewrite the configuration file. Remember, redis server has to have write permission to that file.
dir path/to/dorectory has to be set in the redis config file.

Pointing a domain to apache server without virtual hosts or custom conf files

We have a SaaS product and we give websites for customers. The customers can request to have their own domain pointed to their website. At the moment we use httpd.conf file to add a VirtualHost entry pointing to the same document directory. Afterwards the database will load the website by matching the URL. We realized there are couple of problems with this approach and this is not scalable at all.
If there is a mistake in httpd.conf file their is potential the whole product might not work. This has actually happen. Also, we use WHM and cPanel, so when we add a mod or does a tweak in the live server, the entire httpd.conf gets rewritten having us to replace/add existing virtual host entries to the file.
Strangely in our QA server, i did not have to add any virtualhost entries and as soon as a new domain is pointed, the website is picked up from the database. I realized the virtualhost entries were needed in the live server only. Both have Apache 2.4 CentOS installed. Is there a reason behind this? Im sure this has something to do with a configuration change.
Hope someone can point me in the right direction where i can achieve the same in our live server environment.
Cheers!
In Apache VirtualHosts add versatility but you are not forced to create any.
Apache will listen to the interfaces you tell it to (with the Listen directive) and when receiving requests if you haven't defined any virtualhosts the default server config will answer all requests.
The moment you add a virtualhost, that will be used to answer all requests, and if you add more virtualhosts the servername in them is examined to determine where to deliver requests depending on the incoming host header.
There really isn't anything more to it really.

creating rabbitmq vhost with kombu

I am looking for a way to create and configure vhosts in rabbitmq with kombu but found nothing in the documentations. Is there a way to do so?
In addition - is there a permission / role in rabbitmq (other than admin) that allows to create vhosts?
I'm not familiar with kombu, but if it can call an external command, namely rabbitmqctl, than it could use it to create the vhost. Also there is way by using the http API (just look for create a new vhost).
You can create a new user (using the aforementioned methods or WebUI) and give it any permission you want - if tagged as administrator that user will be able to create new vhosts.