摘要:配置 Nginx 来代理多个域名需要进行以下步骤。我们将通过一个示例来展示如何配置:1. 安装 Nginx 如果你还没有安装 Nginx,可以在大多数 Linux 发行版上通过包管理器安装,例如在 Ubuntu 上: ``` sudo apt update sudo apt install nginx ...
配置 Nginx 来代理多个域名需要进行以下步骤。我们将通过一个示例来展示如何配置:
1. 安装 Nginx
如果你还没有安装 Nginx,可以在大多数 Linux 发行版上通过包管理器安装,例如在 Ubuntu 上:
```
sudo apt update
sudo apt install nginx
```
2. 配置 Nginx
Nginx 的配置文件通常位于 `/etc/nginx/nginx.conf`,而站点的单独配置文件位于 `/etc/nginx/sites-available/` 和 `/etc/nginx/sites-enabled/` 目录。
在这个示例中,我们有两个域名 `example1.com` 和 `example2.com`,它们会被代理到不同的内部服务器。
3. 配置文件示例
首先,创建两个单独的配置文件来处理这两个域名的请求。在 `/etc/nginx/sites-available/` 目录下创建两个文件。
- `example1.com` 的配置文件:
```
server {
listen 80;
server_name example1.com www.example1.com;
location / {
proxy_pass http://192.168.1.100:8080; # 指定内部服务器地址和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
- `example2.com` 的配置文件:
```
server {
listen 80;
server_name example2.com www.example2.com;
location / {
proxy_pass http://192.168.1.101:8080; # 指定另一个内部服务器地址和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
4. 启用站点配置
将这些配置文件链接到 `/etc/nginx/sites-enabled/` 目录。
```
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
```
5. 测试配置并重启 Nginx
在更改任何配置后,始终应该测试配置是否正确。
```
sudo nginx -t
```
如果没有错误消息,可以重新加载 Nginx 以应用更改:
```
sudo systemctl reload nginx
```
通过以上步骤,你已经成功配置了 Nginx 来代理多个域名到不同的内部服务器。这样,当访问 `example1.com` 时,Nginx 会代理请求到 `192.168.1.100:8080`,而访问 `example2.com` 时,Nginx 会代理请求到 `192.168.1.101:8080`。