我有 2 个 IP,一个是私有 IP,一个是公共 IP。我希望公共 IP 提供静态页面
server {
listen private.ip:443 ssl;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name private.ip.207;
rewrite ^/$ https://private.ip/web?db=prod redirect;
location / {
proxy_pass http://private,ip;
}
}
server {
listen private:80;
server_name private.ip;
return 301 https://private.ip$request_uri;
}
server {
listen public.ip:80;
server_name public.ip;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://public.ip:80;
}
如果使用公共 IP,如何提供不同的静态页面?
答案1
如果你的服务器位于 NAT 后面,并且有端口转发,那么你必须使用Host
的标头匹配机制server_name
。唯一的方法是使用完全独立的配置,server_name pub.lic.ip.addr;
如下所示进行匹配:
server {
listen private:{port};
server_name pub.lic.ip.addr;
# ... configure this site.
}
...但是,这仅在请求公共 IP 地址本身时才有效,并且需要特定的端口转发设置可能破坏这一点。