前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用nginx配置一个ip对应多个域名

使用nginx配置一个ip对应多个域名

原创
作者头像
JQ实验室
发布2022-10-30 09:40:21
6.4K0
发布2022-10-30 09:40:21
举报
文章被收录于专栏:实用技术

需求:

--

两个域名想指向同一个网站ip;

解决:

--

  • 如果不需要https的证书访问,其实不需要配置,在域名解析中,分别添加同一个ip即可,通过dns解析,映射到同一个网站上;
  • 如果需要https访问,就需要配置一下443端口了;
  • 首先申请一下ssl证书,选择nginx部署;
  • 多个域名只需要,添加sever配置既可;

在http{}中新增server配置;

原有server

代码语言:txt
复制
 server {
        listen       80 default_server;
        server_name  www.**.cn;
        root         /usr/share/nginx/html;
}
server {
     #SSL 默认访问端口号为 443
     listen 443 ssl;
     server_name cloud.***.com; 
     ssl_certificate cloud.***.com_bundle.crt; 
     ssl_certificate_key cloud.***.com.key; 
     ssl_session_timeout 5m;
     ssl_protocols TLSv1.2 TLSv1.3; 
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
          root html; 
         index  index.html index.htm;
     }
 }

原有server监控了80和443端口,原样复制一份,替换域名和证书既可;

重启服务命令:

service nginx restart

如果报错,可以使用命令查询详情:

service nginx status && journalctl -xe

之前因为配置错误,提示了一些信息;

在这里插入图片描述
在这里插入图片描述

安提示信息,修改后就没事了


如果觉得复制在一个文件中太复杂,可以考虑每一个域名单独写一个文件中;

在http{}中 添加一行代码,加载文件夹下所有配置;

在这里插入图片描述
在这里插入图片描述

然后编写一个域名为文件名的配置文件;将证书信息也放到文件夹内;

配置文件内输入之前复制的配置信息;

代码语言:txt
复制
   server {
        listen       80;
        server_name  www.***.cn;
        root         /usr/share/nginx/html;

       location / {
           proxy_set_header HOST $host;
           proxy_set_header X-Forwarded-Proto $scheme;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }



    server {
        listen       443 ssl;
        server_name  www.***.cn;
        root         /usr/share/nginx/html;
        autoindex on;

        ssl_certificate  conf.d/1_www.***.cn_bundle.crt;
        ssl_certificate_key conf.d/2_www.***.cn.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

       location / {
           proxy_set_header HOST $host;
           proxy_set_header X-Forwarded-Proto $scheme;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

这样在有多个域名时,nginx.conf不会写的太复杂;比较清晰;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档