使用nginx和docker发送CNAME
我试图实现使用nginx和docker发送CNAME,docker,nginx,amazon-ec2,devops,Docker,Nginx,Amazon Ec2,Devops,我试图实现api.com=>api.myapp.com,但没有成功 主nginx在docker上的aws/ec2上运行,并监听端口80 server { listen 80; server_name myapp.com; location / { proxy_pass http://app:80/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Fo
api.com=>api.myapp.com
,但没有成功
主nginx在docker上的aws/ec2上运行,并监听端口80
server {
listen 80;
server_name myapp.com;
location / {
proxy_pass http://app:80/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
server {
listen 80 l;
server_name api.myapp.com;
location / {
proxy_pass http://api:80/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
myapp.com已配置域
A记录=>@(主机)=>1.10.10.30(aws-ec2/ip)
记录=>api(主机)=>1.10.10.30(aws-ec2/ip)
使用此配置,它可以正常工作。访问myapp.com
解析app
,api.myapp.com
解析api服务
(我希望到目前为止一切正常,所以如果这样做是错误的,请告诉我)
问题
现在,我想用CNAME
api.myapp.com
配置api.com
。
我找到我的域管理器(godaddy)并设置为:
CNAME
=>www
=>api.myapp.com
当我访问api.com
时,它会解析myapp.com
而不是api.myapp.com
我该怎么办?
api.com
未列在server\u name
指令中,因此Nginx将使用默认的服务器块,它恰好是第一个。感谢您的回复。如果我要在我的nginx中配置它。使用CNAME配置api.com
的目的是什么?为什么我不能用记录api.com
=>ec2/ip
?有什么区别?CNAME或记录对Nginx没有区别。CNAME需要两次DNS查找,因此效率低于A记录。如果您可以控制服务的IP地址,您还可以使用A记录。如果其他人控制了IP地址并定义了A记录来指向它,那么使用CNAME可能会更有效,这样您就不必担心IP地址是否会发生变化。谢谢,我这么问是因为我看到()shopify要求您配置CNAME和A-record。。。我想知道为什么他们两个都要?我错过了什么?。。。这就是我最后想要达到的目标customer.com
==>customer.myapp.com
就像shopify那样没问题