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、测试
经过测试,域名绑定没有问题,虽然我这个是用的二级域名,但是和顶级域名没有区别。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现