我们拿阿里云的ECS云服务器CentOS7+来举例:

1、修改nginx默认的配置文件:

以 YUM 安装的 Nginx 为例:

1.执行命令 vi /etc/nginx/nginx.conf 编辑 Nginx 的配置文件,将默认的server {...} 配置修改为以下内容:

server {
     listen    80 default_server;
     server_name    www.123.com;
     root    /home/web1;
     location / {
     }
     error_page 404 /404.html;
         location = /40x.html {
     }
     error_page 500 502 503 504 /50.xhtml;
         location = /50x.html {
     }
 }
 server {
     server_name www.abc.com;
     root    /home/web2;
     location / {
     }
     error_page 404 /404.html;
         location = /40x.html {
     }
     error_page 500 502 503 504 /50x.html;
         location = /50x.html {
     }
 }
  • 访问 www.123.com 时,跳转到 /home/web1 目录。
  • 访问 www.abc.com 时,跳转到 /home/web2 目录。

2.执行命令 nginx -s reload 重启 Nginx 服务。

其他方式也可以直接看阿里云教程:https://help.aliyun.com/knowledge_detail/41091.html?spm=5176.11065259.1996646101.searchclickresult.4b2b44e3xqAmBg

2、添加自定义的配置文件:

  1. 远程连接并登录到 Linux 实例。
  2. 执行命令 cd /etc/nginx/conf.d 打开 Nginx 服务配置文件目录。
  3. 执行命令 vi 您要创建的域名.conf 创建域名规则配置文件,如示例中的 vi www.server110.com.conf
  4. 输入 i 编辑新建的配置文件:
  • 为每一个域名建立一个单独的配置文件时输入以下内容:
server
{
listen   80;                            #监听端口设为 80。
server_name  www.server110.com;         #绑定您的域名。
index index.htm index.html index.php;   #指定默认文件。
root /home/www/server110.com;           #指定网站根目录。
include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
}
  • 将多个域名规则写进一个共同的配置文件时输入以下内容:
server
{
listen   80;                            #监听端口设为 80。
server_name  www.server110.com;         #绑定您的域名。
index index.htm index.html index.php;   #指定默认文件。
root /home/www/server110.com;           #指定网站根目录。
include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
}
server
{
listen   80;                            #监听端口设为 80。
server_name  msn.server111.com;         #绑定您的域名。
index index.htm index.html index.php;   #指定默认文件。
root /home/www/msn.server110.com;       #指定网站根目录。
include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
}

为无 WWW 前缀的域名配置规则并加 301 跳转时输入以下内容:

server
{
listen 80;
server_name server110.com;
rewrite ^/(.*) http://www.server110.com/$1 permanent;
}

需要为域名添加 404 提示时输入以下内容:

server
{
listen   80;                            #监听端口设为 80。
server_name  www.server110.com;         #绑定您的域名。
index index.htm index.html index.php;   #指定默认文件。
root /home/www/server110.com;           #指定网站根目录。
include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
error_page 404   /404.html;
}
  1. 按 Esc 退出编辑并输入 :wq 保存退出。
  2. 执行命令 nginx -t 检查配置是否有误,并按照报错提示修复错误。
  3. 执行命令 service nginx restart 重启 Nginx 服务。
  4. 执行命令 service nginx reload 重新载入 Nginx 服务。

也可以直接查看:https://help.aliyun.com/knowledge_detail/41467.html?spm=5176.11065259.1996646101.searchclickresult.967f7c56pRSqjt

 

那么是否只需要上述操作就可以了呢,如果是php或者静态的html,是完全没问题的,但我们的Spring Boot项目可能一个项目一个端口,那在此基础上还需要修改一下代码:

upstream xx{ #配置upstream节点,这里节点名为“xx”
        server 116.255.111.111:8080;
  }

  server{
        listen 80;
        server_name  www.xxx.xx; #这里配置nginx需要代理的域名
        location / {
                proxy_pass http://xx; #指定反向代理为上面配置的那个upstream节点“xx”
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

我的配置:/etc/nginx/conf.d/domain.conf

upstream resumehubServer{
        server localhost:8080;
    }
server
{
listen   80;                            #监听端口设为 80。
server_name  www.resumehub.cn;         #绑定您的域名。
index index.htm index.html index.php;   #指定默认文件。
root /opt/resume;           #指定网站根目录。
location / {
                proxy_pass http://resumehubServer; #指定反向代理为上面配置的那个upstream节点“xx”
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

之所以在/etc/nginx/conf.d/目录下的文件都可以域名映射,是因为在/etc/nginx/nginx.conf文件中include了这个目录下的所有conf文件

上面的upstream指定当前服务器部署的web服务的端口。