nginx配置多个站点共用80端口的解决方法

  

当一个服务器需要承载多个网站时,我们可以用Nginx实现多站点共用同一IP和端口的方案。其实现的主要步骤如下:

  1. 准备工作:确保已经安装了Nginx,并且位于系统环境变量中,可以通过nginx -v命令查看版本信息。

  2. 创建站点目录:为每一个网站创建所需的目录,假设有两个站点需要创建:

  3. 站点A的目录是:/data/www/siteA/

  4. 站点B的目录是:/data/www/siteB/

  5. 创建站点配置文件:为每个站点创建一个Nginx配置文件,假设站点A使用的域名是www.sitea.com,站点B使用的域名是www.siteb.com。我们需要在Nginx的config目录下新建两个配置文件,文件名分别为siteA.conf和siteB.conf,并且在这两个配置文件中分别进行如下的配置:

  6. 配置文件siteA.conf:

   server {
        listen       80;
        server_name  www.sitea.com;
        location / {
            root   /data/www/siteA/;
            index  index.html index.htm;
        }
    }
  • 配置文件siteB.conf:
   server {
        listen       80;
        server_name  www.siteb.com;
        location / {
            root   /data/www/siteB/;
            index  index.html index.htm;
        }
    }

解释一下以上的配置信息:

  • listen:配置监听的端口。
  • server_name:配置站点域名。
  • location:配置站点文件夹的具体路径,指定站点根目录位置。

  • 配置Nginx默认站点:在Nginx的默认站点中添加如下的配置信息,用于使Nginx能够处理所有未被显式指定的请求,也就是访问IP地址所对应的站点:

    server {
        listen       80 default_server;
        server_name  _;
        root         /data/www/default/;
        index        index.html index.htm;
    }

解释一下以上的配置信息:

  • default_server:配置Nginx默认站点。
  • server_name:配置站点域名为通配符,所有请求都将被匹配。
  • root:如果没有任何一个配置文件可以匹配到请求,就会将请求发送到这个默认站点的根文件夹。
  • index:配置默认站点的默认首页。

注意,为了让以上配置更好的生效,我们需要确保Nginx已经配置好了include代码块,即nginx.conf文件中含有如下的代码块:

    http {
        ...
        include /etc/nginx/conf.d/*.conf;
        ...
    }
  1. 测试运行:启动Nginx,并通过浏览器分别访问www.sitea.com和www.siteb.com域名所对应的站点根目录中的index文件,如index.html或index.php。如果能够正确访问到,则说明Nginx已经成功整合多个站点并提供了服务。

总结:

通过以上步骤,我们就可以非常容易地使用Nginx实现多个站点共用同一IP和端口,从而最大化地减少服务器资源的浪费与消耗。

相关文章