如何使用Nginx配置多个域名

Nginx是一款功能强大的Web服务器软件,广泛应用于反向代理、负载均衡、动静分离等场景。在实际应用中,我们经常需要在同一台服务器上托管多个网站,这就需要Nginx来配置多个域名。下面我们就来详细介绍如何使用Nginx配置多个域名。

1. 了解Nginx的虚拟主机配置

在Nginx中,我们可以通过配置虚拟主机来实现多个域名的托管。每个虚拟主机都有自己独立的配置文件,包括监听端口、根目录、日志文件等。当用户访问某个域名时,Nginx会根据域名匹配对应的虚拟主机配置,从而将请求转发到正确的网站。

2. 配置多个域名

下面我们以一个具体的例子来说明如何配置多个域名:

假设我们有两个域名:example1.com和example2.com,它们都指向同一台服务器的IP地址。我们需要在Nginx中为这两个域名分别创建虚拟主机配置。

首先,打开Nginx的主配置文件nginx.conf,在http块中添加以下内容:

server {
    listen 80;
    server_name example1.com;
    root /var/www/example1;
    index index.html index.htm;
}

server {
    listen 80;
    server_name example2.com;
    root /var/www/example2;
    index index.html index.htm;
}

在上述配置中,我们定义了两个server块,分别对应example1.com和example2.com两个域名。每个server块中包含以下配置项:

  • listen 80;: 监听80端口,即HTTP协议。
  • server_name example1.com;: 指定域名。
  • root /var/www/example1;: 指定网站根目录。
  • index index.html index.htm;: 指定默认索引文件。

保存配置文件并重启Nginx,这样就完成了多个域名的配置。

3. 配置HTTPS支持

除了HTTP协议,我们还可以为每个域名配置HTTPS支持。具体步骤如下:

  1. 申请SSL证书,可以使用免费的Let's Encrypt证书。
  2. 将证书文件(如cert.pem和key.pem)放置在Nginx配置目录下。
  3. 修改Nginx配置,在server块中添加以下内容:
    listen 443 ssl;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
  4. 保存配置文件并重启Nginx。

至此,我们就完成了使用Nginx配置多个域名并支持HTTPS的过程。通过这种方式,我们可以在同一台服务器上托管多个网站,提高资源