Salamander

  • 0 Posts
  • 12 Comments
Joined 4 years ago
cake
Cake day: December 19th, 2021

help-circle



  • So, ultimately my problem was that I was trying to set all of the limits to what I thought were “reasonable” values simultaneously, and misunderstood what ‘Message’ meant, and so I ended up breaking things with my changes without the reason being obvious to me. I looked into the source code and I can see now that indeed ‘Messages’ refer to API calls and not direct messages, and that there is no ‘Direct Message’ rate limit.

    If I let ‘Messages’ stay high I can adjust the other values to reasonable values and everything works fine.

    Thanks a lot for your help!! I am surprised and happy it actually worked out and I understand a little more 😁



  • Thanks!

    I was able to crash the instance for a few minutes, but I think I have a better idea of where the problem is. Ths $emote_addr variable seems to work just the same.

    In the rate limit options there is a limit for ‘‘Message’’. Common sense tells me that this means ‘direct message’, but setting this to a low number is quite bad. While testing I eventually set it to ‘1 per minute’ and the instance became unresponsive until I modified the settings in the database manually. If I give a high number to this setting then I can adjust the other settings without problem.


  • Yes, I see this there. Most of the nginx config is from the ‘default’ nginx config in the Lemmy repo from a few years ago. My understanding is somewhat superficial - I don’t actually know where the variable ‘$proxy_add_x_forwarded_for’ gets populated, for example. I did not know that this contained the client’s IP.

        # backend
        location ~ ^/(api|pictrs|feeds|nodeinfo|.well-known) {
          proxy_pass http://0.0.0.0:8536/;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
    
          # Rate limit
          limit_req zone=mander_ratelimit burst=30000 nodelay;
    
          # Add IP forwarding headers
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    
    

    I need to do some reading 😁


  • Thanks! Yes, I saw both messages and I am now going through the NGINX config and trying to understand what could be going on. To be honest, Lemmy is the hobby that taught me what a ‘reverse proxy’ and a ‘vps’ are. Answering a question such as ‘Are you sending the client IP in the X-Forwarded-For header?’ is probably straight forward for a professional but for me it involves quite a bit of learning 😅

    At location /, my nginx config includes:

          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    

    So, I think that the answer to your question is probably ‘yes’. If you did have these rate limits and they were stable, the more likely explanation is that something about my configuration is sub-optimal. I will look into it and continue learning, but I will need to keep my limits a bit high for the time being and stay alert.


  • I don’t recall any of them being from mander (unless they were dealt with before I started testing?), but thanks for taking preventative measures :)

    I don’t know what ‘Antiyanks’ is
    

    It’s the codename for a particular long-term troll and is based off of their original username pattern (which they still use sometimes). I have reason to believe it’s also the same troll that used to spam the racist stuff in Science Memes.

    These are most of today’s batch (minus the JON333 which was just a garden-variety spammer that made it into the last screenshot).

    No, they were not in mander.xyz. But I am generally quite relaxed when it comes to accepting applications. I mostly reject an applicant if it is very clear it is not an actual user, and then actively follow up on recent accounts for a short time. So the possibility of silent spammer accounts accumulating over time is always a concern.




  • Thanks for the heads up. I don’t know what ‘Antiyanks’ is, but I already had to ban one comment spammer.

    The rate limits are indeed a bit confusing. The settings are:

    Rate Limit: X Per Second: Y

    I understand this to be ‘X for every Y seconds’

    So, a ‘Comments’ Rate limit: 10, Per second: 60, means a maximum of 10 comments per minute, correct?

    Maybe the reason you see 99999999 is due to troubleshooting. I have increased my instance’s limits multiple times while troubleshooting server issues, because the meaning of the settings was not clear to me. These limits are usually not the reason for the sever issue, but I put some high number and did not bring them back down after the issues were resolved.

    I have lowered them now to more reasonable numbers. I will also be more strict with new applications for the time being.