Spaces:
Runtime error
Runtime error
| # fastchat Nginx Gateway | |
| ## Purpose of the Gateway | |
| The Nginx gateway serves the following purposes: | |
| 1. Protects Gradio servers by acting as a firewall. | |
| 2. Facilitates dynamic mounting and unmounting of Gradio servers. | |
| 3. Provides load balancing for Gradio servers. | |
| 4. Offers additional security features, such as total connection limit. | |
| 5. Reduces attack surface by requiring only a single public port to be exposed for serving. | |
| ## Deployment and Updating of the Gateway | |
| ### Installing Nginx | |
| On Debian-based distributions (e.g., Ubuntu): | |
| ```bash | |
| sudo apt update | |
| sudo apt install nginx | |
| ``` | |
| On Red Hat-based distributions (e.g., CentOS, Fedora): | |
| ```bash | |
| sudo yum install epel-release | |
| sudo yum install nginx | |
| ``` | |
| ### Deployment | |
| Copy `nginx.conf` to `/etc/nginx/nginx.conf` (need sudo permission). | |
| Replace the port number 7860 in `server localhost:7860` with the port where you deploy the Gradio web server. | |
| Modify `upstream websocket` to configure Gradio servers behind the gateway. | |
| Lastly, update Nginx. | |
| ### HTTPS Deployment with a Public Domain URL | |
| Make sure you obtain the HTTPS certificate and the private key used to generate the certificate. | |
| Fill the addresses to your certificate and private key in the `[PATH_TO_SSL_CERT]` and `[PATH_TO_PRIVATE_KEY]` fields. | |
| If you have your own domain url to serve the chatbot, replace the chat.lmsys.org url with your own domain url. | |
| ### Updating | |
| Every time when `/etc/nginx/nginx.conf` is modified, you need to update the Nginx service: | |
| ```bash | |
| sudo nginx -t # check `/etc/nginx/nginx.conf` | |
| sudo systemctl reload nginx # restart Nginx service to load the new config | |
| sudo systemctl status nginx # check the status of the Nginx service. It should be active (running). | |
| ``` | |