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
标签:Nginx,绑定,端口,server,nginx,域名,docker,80 From: https://www.cnblogs.com/PrintY/p/17665155.html