Spaces:
No application file
No application file
# 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). | |
``` | |