Using the Locust documentation, explain how to set up a distributed load test with master and worker nodes across multiple machines, including how workers get the test script. Also, describe how to debug a single user's HTTP requests to view all communication.
Navigate to the 'Distributed load generation' section. Identify the commands to start Locust master and worker nodes for a multi-machine setup. Determine how workers obtain the test script from the master. Navigate to the 'Running tests in a debugger' section. Identify the Locust function used for debugging a single user and its purpose for printing HTTP communication. Synthesize the collected information to answer the user's questions.
State that the master is started with `locust --master`. State that workers are started with `locust --worker --master-host=<master_ip>`. Explain that workers can fetch the locustfile from the master using the `--web-host` flag (or implicitly if the web UI is enabled on the master). Identify `locust.debug.run_single_user` as the function for debugging a single user. Explain that `locust.debug.run_single_user` implicitly registers an event handler to print HTTP communication/request statistics.