Home  >  Article  >  PHP Framework  >  Using Nginx load balancing in ThinkPHP6

Using Nginx load balancing in ThinkPHP6

WBOY
WBOYOriginal
2023-06-20 09:04:191556browse

With the increase in website visits, a single server is often unable to withstand high concurrent traffic, and load balancing has emerged to solve this problem. Load balancing is a technique that distributes traffic across multiple servers to improve website availability and stability. Here is an introduction to how to use Nginx to achieve load balancing in ThinkPHP6.

  1. Install Nginx

First you need to install Nginx. Taking the Linux system as an example, you can use the following command to install it:

sudo apt update
sudo apt install nginx

After the installation is complete, you can use the following command to start Nginx:

sudo systemctl start nginx

Access the server IP address or domain name, you should be able to see the default Nginx welcome page.

  1. Configuring load balancing

Before using Nginx to implement load balancing, you need to configure the backend server first. Here we take two servers as an example, namely 192.168.1.2 and 192.168.1.3.

Configure load balancing in the Nginx configuration file. You can use the following command to open the default nginx.conf file:

sudo nano /etc/nginx/nginx.conf

Add the following configuration within the http block:

upstream backend {
  server 192.168.1.2;
  server 192.168.1.3;
}

An upstream named backend is defined here to distribute traffic to two computers. server. Multiple servers can be added according to actual conditions.

Next, add the location block inside the server block. Here is a simple ThinkPHP6 example:

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
  }
}

A virtual host named example.com is defined here, and a proxy is used to send requests to the defined backend upstream. You can modify server_name and location according to the actual situation.

  1. Restart Nginx

After the configuration is completed, you need to restart Nginx to take effect:

sudo systemctl restart nginx

Now visit example.com, the request will be assigned to Achieve load balancing on two servers.

  1. Testing

You can use some stress testing tools to test the effect of load balancing. Here we take Apache Bench as an example.

First you need to install Apache Bench. Taking the Ubuntu system as an example, you can use the following command to install:

sudo apt-get update
sudo apt-get install apache2-utils

After the installation is completed, you can use the following command to test:

ab -n 10000 -c 100 http://example.com/

where -n represents the number of requests, and -c represents the number of concurrencies. The following parameters represent the requested URL.

After the test is completed, you can view the access logs on each server. You can see that the requests are distributed to the two servers, and the load balancing effect is significantly improved.

Summary

Using Nginx to achieve load balancing in ThinkPHP6 can improve the availability and stability of the website. Load balancing can be achieved with simple configuration, allowing the website to run smoothly under high concurrent traffic.

The above is the detailed content of Using Nginx load balancing in ThinkPHP6. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn