nginx 绑定多个域名

1、服务器环境

阿里云CentOS7.9系统、Docker环境

Nginx已部署,端口是8080(因为这个是我自己的测试服务器,没舍得用80端口,如果是实际环境,Nginx需要监听80端口)

docker运行了两个应用,端口分别是8004和8003(两个测试应用),如果为了直观可以使用两个不同的应用,我为了快捷,是同一个应用部署了2次。

2、配置

2.1 DNS解析

因为我这个域名是在腾讯云上买的,所以要去腾讯云上做DNS解析,将域名解析地址指向应用所在的服务器。

添加了3条记录,其中@符,指的是xxxxxx.cn,即顶级域名,其余两条是二级域名。

2.2 nginx.conf文件修改

我这边服务器上的Nginx配置文件是挂载在宿主机上,所以直接修改宿主机上的就行,如果没挂载就需要进入docker里面修改。

worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;



    sendfile        on;


    keepalive_timeout  65;
    # 静态文件映射
    server {
        listen       80;#端口
        server_name  localhost;#访问地址、域名
               
        
        location / {     #匹配访问url规则
            root   /usr/share/nginx/html/html/;       #指向路径   实际访问路径为 D:/t2/html/myhtml/  两个拼接的
        }
    }
    
    
    # 配置 server
    server {
        listen 80;
        server_name xxxxxxxx.cn test1.xxxxxxxx.cn; # 支持 www 和 non-www 两种访问方式
        location / {
            proxy_pass http://172.00.000.000:8003; # 将其转发到内网 8003 端口
        }
    }
 
    # 配置另一个 server
    server {
        listen 80;
        server_name test2.xxxxxxxx.cn;
        location / {
            proxy_pass http://172.00.000.000:8004; # 将其转发到内网 8004 端口
        }
    }

}

这个配置文件,关注最下面两个server就行了,第一个是静态文件访问测试的配置与域名绑定没关系。

其中proxy_pass要注意下,大家可能会写http://localhost,如果是docker环境那就不行,因为docker内是访问不了这个地址的,在Nginx的docker看来localhost是指自己容器内部,docker内部需要访问云服务器的内网地址。

修改完毕以后,运行下 docker restart 380f 重启下Nginx容器。

3、测试

经过测试,域名绑定没有问题,虽然我这个是用的二级域名,但是和顶级域名没有区别。

 

 

参考:https://blog.csdn.net/AlbenXie/article/details/131951285

posted @ 2023-08-29 16:14  PrintY  阅读(111)  评论(0编辑  收藏  举报