【发布时间】:2014-03-03 21:16:08
【问题描述】:
我有一个在 AWS EC2 实例上运行的 nginx 1.4.5 服务器。我有两个 conf 文件:default.conf 和 myapp.conf。 default.conf 监听 localhost,myapp.conf 监听 myapp.mydomain.com。
但是我发现即使我在浏览器中输入myapp.mydomain.com,它总是会加载default.conf。我已经更改了nginx.conf 文件中的log_format,添加了一个"$server_name" 字段来检查每个请求的服务器名称。我发现它总是localhost。
有人对此有任何想法吗?
配置信息更新
nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
...
}
myapp.conf
server {
listen 80;
server_name myapp.mydomain.com;
access_log /var/log/nginx/myapp.log;
location / {
add_header P3P 'CP="CAO PSA OUR"';
proxy_pass http://127.0.0.1:8080/myapp/;
set $ssl off;
if ($scheme = https) {
set $ssl on;
}
proxy_set_header X-Forwarded-Ssl $ssl;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
是的,我在两个防火墙后面,一个是 iptable,另一个是 AWS 内置的安全组
【问题讨论】:
-
能否请您发布配置 - 确认它不在代理后面?
-
我唯一能想到的可能是您尝试访问
www站点,而您只定义了一个没有在 nginx conf 中的站点,是这样吗?,请尝试附加 @987654337服务器名称中的 @ 替代项(如果适用)。
标签: nginx amazon-ec2 localhost server-name