当你需要将 Nginx 用于多个服务域名时,可以按照以下步骤来配置 Nginx:
安装 Nginx
在 Ubuntu 或者 Debian 上,可以使用如下命令安装 Nginx:
sudo apt-get update
sudo apt-get install nginx
配置 DNS
在域名服务器上,修改域名解析。将不同的域名解析到 Nginx 服务器的 IP 地址上。如果需要在本地测试,可以在 /etc/hosts 文件中输入以下内容,将域名解析到本地:
127.0.0.1
127.0.0.1
配置 Nginx
在 Nginx 的配置文件 /etc/nginx/ 中,添加以下内容:
http {
include /etc/nginx/;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 配置 server
server {
listen 80;
server_name ; # 支持 www 和 non-www 两种访问方式
location / {
proxy_pass http://localhost:8001; # 将其转发到本地的 8001 端口
}
}
# 配置另一个 server
server {
listen 80;
server_name ;
location / {
proxy_pass http://localhost:8002; # 将其转发到本地的 8002 端口
}
}
}
在 Nginx 的配置文件中,配置一些基本的配置项 http,包括 MIME 类型、默认类型、文件传输、超时时间等。然后,再配置两个 server,在 80 端口上监听不同的域名。在 server_name 参数中,可以列举出支持的域名。如果需要支持 www 和 non-www 两种方式的访问,可以把它们都列出来。最后,location 参数指定转发的地址。例如,可以将第一个服务转向到本地的 8001 端口,将第二个服务转向到本地的 8002 端口。
重启 Nginx
在完成配置后,输入以下命令,重启 Nginx 使得修改生效:
sudo service nginx restart
这样,Nginx 便可以根据不同的域名,将请求转发到不同的服务。
需要注意的是:
如果你使用了 HTTPS,不同的域名需要使用不同的 SSL 证书;
每一个服务在使用的时候,也需要在 Nginx 中做出相对的配置;
有可能你需要不同的配置文件,来处理不同的服务。
最终的配置主要包括以下参数:
server: 定义一个 server;
listen: 定义要监听的端口(例如,80);
server_name: 域名;
location: 定义要定向的地址。