我有一个站点,其配置名为我的站点. 配置如下。
server {
listen 1.2.3.4:80;
listen 1.2.3.4:443 default ssl;
server_name mysite.com;
ssl_certificate /etc/nginx/ssl/wildcard_cert.com.crt;
ssl_certificate_key /etc/nginx/ssl/wildcard_key.com.key;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache off;
if ($allowed_country = no) {
return 444;
}
include include/locations.conf;
}
另外,在文件中位置配置文件我有反向代理规则。它在下面。
location / {
include proxy_params;
proxy_pass http://mysite-on-IIS;
}
它工作正常。
我接到任务配置同一个非 SSL 站点。为此,我为安装了 Nginx 的 Linux 接口创建了一个新 IP。请参阅/etc/网络/接口下面的文件。
auto eth1
iface eth1 inet static
address 1.2.3.4
netmask 255.255.255.240
auto eth1
iface eth1 inet static
address 1.2.3.5
netmask 255.255.255.240
我创建了一个名为我的网站(非 SSL,因为我们的提供商不支持伊朗的 SSL)。配置文件与 mysite.com 相同。我复制粘贴了它,只是删除了 SSL 行。请参见下文。
server {
listen 1.2.3.5:80;
server_name mysite.ir;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache off;
if ($allowed_country = no) {
return 444;
}
include include/locations.conf;
}
如果我访问 mysite.com – 一切正常。 如果我访问 mysite.ir – 我看到的是默认的 Nginx 问候语,而不是我的网站在代理中指定的。即使我将 mysite.ir 文件中的 IP 更改为来自 mysite.com 的 IP – 它也正常工作。如果我通过来自 mysite.com 或 mysite.ir 的 IP 访问网站,我会看到默认的 Nginx 问候语。
我不明白为什么。
答案1
从两个不同的 NIC 运行这些网站有多重要?我建议只为 https 创建一块服务器配置块(包括 443 侦听器和 SSL 配置),为 http 流量创建另一块(端口 80,无证书)
然后只需将两者转发到正确的上游并设置:
server {
listen 80 default_server;
server_name _;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache off;
location / {
include proxy_params;
if ($allowed_country = no) { return 444; }
proxy_pass http://mysite-on-IIS;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}