Line a plate with paper towels. Set aside.
In a large pot over medium heat, cook the bacon, stirring occasionally, until the fat renders, about 8 minutes. Increase the heat to medium-high and cook until brown and crispy, stir as needed, about 5 minutes more. Transfer the bacon to the prepared plate, keeping the bacon grease in the pot. Add the celery and turn the heat to medium. Cook, stirring occasionally, until the celery softens a bit and is slightly translucent, about 5 minutes. Add the zucchini, peppers, and onion powder and cook for 5 minutes. Add the green beans, diced tomatoes, Italian seasoning, Parmesan rinds, salt, pepper, and water.
Bring the soup to a boil. Cover, reduce the heat to medium low, and let simmer for 10 minutes. Add the cabbage and cook until it softens, about 10 minutes more. Season with salt and pepper to taste, then stir in half of the grated Parmesan cheese.
Meanwhile, make the pesto: in a food processor, combine the basil, nuts, garlic, salt, pepper, and half of the olive oil. Pulse until smooth. With the machine slowly running, add the remaining olive oil and process until smooth. Add the cheese, then pulse just a few times to incorporate.
To serve, transfer the soup to bowls, crumble some of the bacon over each bowl of soup, and top with a swirl of pesto and a sprinkle of the remaining grated Parmesan cheese.