在一个Nginx服务器上实现多个网站的部署运行

在一个Nginx服务器上实现多个网站的部署运行

知识分子没文化
2021-02-20 / 0 评论 / 286 阅读 / 正在检测是否收录...

目录:

环境说明:

Linux:ubuntu 20.04

Nginx:1.18

Mysql:8.0

PHP:7.3

服务器:阿里云服务器

对于一个服务器,理论上来说在上面可以运行无限多个网站。但是,现实中往往到考虑服务器的配置,当服务器要处理的事务太多的时候,也就忙不过来了。

接下来就是如何实现的问题。在Nginx下有两种思路可以实现这个目的:

一是只需要一个域名(一级域名或者二级域名都可以),做一次域名解析即可,将域名解析到服务器IP地址,用不同的端口来实现不同网站的服务,即用同一个域名 + 端口号的方式来访问相应的网站。这种方法实现起来比较简单,修改网站配置文件里的端口即可,要开启服务器的相应端口,但是访问起来就比较麻烦了,每次访问都得加上端口号,如果不加端口号,便默认访问80端口。用域名langp.wang来图示说明:

01

二是全部网站都用80端口来实现访问,但是需要多个域名(或者二级域名),这种方法实现起来不算太难,访问也很方便,输入域名即可访问对应的网站,因此这篇博客主要来介绍这种方法。这种方法用域名langp.wang来举例就是这样的:

02

我的顶级域名是langp.wang,这个域名挂的是我的博客网站,我用一个顶级域名下的test1.langp.wangtest2.langp.wang这两个二级域名来举例子,再到服务器上添加两个网站。

1.域名解析

在阿里云域名解析控制台中添加域名解析,可以是几个不同的顶级域名,也可以是一个顶级域名下的二级域名。记录值相同,均为同一个服务器ip地址。

03

2.添加nginx配置文件

进入配置文件所在的目录,我的是/etc/nginx/sites-enabled,分别创建两个配置文件

# 进入目录
cd /etc/nginx/sites-enabled

# 创建test1和test2,配置文件可以随便命名
touch test1 test2

然后编辑这两个配置文件,test1的内容如下:

# HTTP服务配置
server {
    listen 80;
    # test1.langp.wang改为你的域名
    server_name test1.langp.wang;
    # 存放网站文件的根目录,根据自己的情况修改
    root /var/www/html/test1;

    index index.html index.htm index.php;
    location / {
        try_files $uri $uri/ =404;
    }

    # 加入php的配置,使服务器可以处理php网页
    location ~ \.php$ {
        #include snippets/fastcgi-php.conf;

        # 使用php-fpm(或其他unix套接字):
        fastcgi_pass unix:/run/php/php-fpm.sock;
        # 使用php-cgi(或其他tcp套接字):
        #fastcgi_pass 127.0.0.1:9000;
        # 设置脚本文件请求的路径
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 引入fastcgi的配置文件 
        include fastcgi_params;
    }
}

test2的内容与test1的内容也差不多,区别仅仅在于server_nameroot这两个参数不同,server_name是指服务器名称,填写要访问网站的域名即可,root是该网站的根目录。

# HTTP服务配置
server {
    listen 80;
    # test2.langp.wang改为你的域名
    server_name test2.langp.wang;
    # 存放网站文件的根目录,根据自己的情况修改
    root /var/www/html/test2;

    index index.html index.htm index.php;
    location / {
        try_files $uri $uri/ =404;
    }

    # 加入php的配置,使服务器可以处理php网页
    location ~ \.php$ {
        #include snippets/fastcgi-php.conf;

        # 使用php-fpm(或其他unix套接字):
        fastcgi_pass unix:/run/php/php-fpm.sock;
        # 使用php-cgi(或其他tcp套接字):
        #fastcgi_pass 127.0.0.1:9000;
        # 设置脚本文件请求的路径
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 引入fastcgi的配置文件 
        include fastcgi_params;
    }
}

编辑完之后,重启nginx服务:

sudo nginx -s reload

3.添加网站

在相应的网站根目录中(上一步配置文件里设置的root后面的目录)添加网站文件,添加完成后。访问对应的域名,你就会发现打开的是不同的网站了,说明配置成功。

0

评论 (0)

取消