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

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

需求:

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

解决:

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

在http{}中新增server配置;
原有server

 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{}中 添加一行代码,加载文件夹下所有配置;
在这里插入图片描述

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

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

   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不会写的太复杂;比较清晰;

相关文章
|
4月前
|
网络协议
每日一个计算机小知识:IP和域名
每日一知:IP是网络设备的“门牌号”,分IPv4(32位,已耗尽)和IPv6(128位,海量地址);域名则是便于记忆的“别名”。通过DNS系统,域名与IP关联,让我们轻松访问网站。
|
9月前
|
域名解析 应用服务中间件 Shell
使用nps配置内网穿透加域名解析
使用nps配置内网穿透加域名解析
1019 76
|
9月前
|
存储 应用服务中间件 nginx
在使用Nginx之后,如何在web应用中获取用户IP以及相关原理
但总的来说,通过理解网络通信的基础知识,了解http协议以及nginx的工作方式,我们已经能在大多数情况下准确地获取用户的真实IP地址了,在调试问题或者记录日志时会起到很大的帮助。
519 37
|
11月前
|
网络协议
【Azure App Service】App Service 如何配置私网域名以及证书呢?
本文解答了关于 Azure App Service 如何配置私网域名及证书的问题。App Service 不支持私网域名,自定义域名需配置在公共 DNS 服务器上。文章引用官方文档详细说明了映射自定义 DNS 的步骤,并附带参考资料链接,帮助用户深入了解相关配置方法。
254 6
|
11月前
|
安全 网络协议 网络安全
只有IP地址没有域名,如何实现HTTPS访问?
在仅有IP地址而无域名的情况下,实现HTTPS访问并非不可能。主要挑战包括证书颁发机构(CA)对IP地址的支持有限及浏览器兼容性问题。解决方案有:1) 搭建私有CA为内部IP地址颁发证书;2) 使用支持IP地址的公共CA服务。选择合适的方案需根据需求权衡。具体步骤包括选择证书类型、生成CSR文件、提交并完成验证、安装SSL证书和配置强制HTTPS访问。确保IP地址稳定,并定期维护安全性。 **申请优惠**:访问JoySSL官网并填写注册码“230907”可优惠申请IP地址证书。
1917 5
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
1233 3
|
域名解析 监控 安全
slb配置检查域名说明注意事项
slb配置检查域名说明注意事项
273 5
|
负载均衡 安全 网络安全
slb配置健康检查域名
slb配置健康检查域名
258 4
|
负载均衡 应用服务中间件
slb何时需要配置健康检查域名
slb何时需要配置健康检查域名
191 3
|
11月前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
494 10