nginx同一个端口不同域名如何配置

原创
ithorizon 11个月前 (06-08) 阅读数 126 #Nginx

标题:Nginx同一端口下拥护多个域名的配置详解

Nginx是一款强盛的Web服务器,它以其高效、稳定和易于管理的特点被广泛应用。在某些场景中,我们也许需要在一个服务器上同时监听多个域名,这就需要用到Nginx的虚拟主机(Virtual Host)功能。下面我们将详细介绍怎样在Nginx中配置一个端口监听多个域名。

1. 基本概念

在Nginx中,每个域名或子域名通常对应一个虚拟主机配置文件。当请求到达时,Nginx会选用域名解析到相应的虚拟主机配置,然后将请求转发给对应的Web服务进程。

2. 配置步骤

创建虚拟主机配置文件

首先,我们需要在Nginx的conf.d目录下创建一个或多个`.conf`文件,每个文件代表一个虚拟主机。例如,我们有两个域名:example.com和sub.example.com,可以创建`example.com.conf`和`sub.example.com.conf`。

server {

listen 80; # 监听80端口

server_name example.com; # 域名1

root /var/www/example.com; # 网站根目录

index index.html index.htm; # 主页索引文件

# 其他相关配置...

}

server {

listen 80;

server_name sub.example.com; # 域名2

root /var/www/sub.example.com;

index index.html index.htm;

# 其他相关配置...

}

配置多域名共享路径

如果两个域名共享相同的静态资源路径,可以在`root`或`location`块中设置`try_files`指令,如`/index.html =404;`描述尝试访问`/index.html`,如果不存在则返回404失误。

location /common {

try_files $uri $uri/ =404;

alias /path/to/common/files/;

}

SSL配置

如果需要拥护HTTPS,需要为每个域名配置SSL证书。在`listen`块中添加`ssl`选项,并在`server`块中添加SSL相关配置。

server {

listen 443 ssl; # 监听443端口

server_name example.com;

ssl_certificate /path/to/cert.pem;

ssl_certificate_key /path/to/key.pem;

# 其他SSL配置...

}

3. 重启Nginx

完成配置后,记得重启Nginx以使更改生效。

sudo service nginx restart

总结

通过以上配置,Nginx可以有效地在同一台服务器上同时处理多个域名的请求。记住,对于每个域名,都需要自由的`server`块来定义其特定的配置。愿望这个指南能帮助你更好地懂得和使用Nginx的虚拟主机功能。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Nginx


热门