nginx 和 wordpress - site2.com 需要加载 site1.com/site2 的内容而无需更改 url

nginx 和 wordpress - site2.com 需要加载 site1.com/site2 的内容而无需更改 url
  • 我有第一个域名网站1.com- 自托管 wordpress 并包含帖子和页面。(一切都很好,没有任何问题)
  • 我有第二个域名site2.com- 没有托管任何内容(DNS指向与site1.com域相同的服务器)

我需要以这样的方式配置 nginx 服务器,以便当用户访问时,他们应该获取wordpress 页面site2.com的内容。site1.com/site2(然后该页面内的其他页面链接可以被site2.com视为其中的一部分site1.com,用户可以点击链接加载内容site1.com

细节

  • 我已经尝试过proxy_pass等等,但没有任何效果。
  • site2.com->site1.com/site2重定向使用了几种技术,但我不需要它,因为我需要的site2.com是位于顶部但 site1.com/site2内容相同的 URL。
  • nginx version: nginx/1.14.2
  • 操作系统 -Debian GNU/Linux 10 (buster)
  • 如果有其他方式(非nginx),仍然可以接受。

提前致谢。

答案1

更新:添加后,可以使用以下配置proxy_ssl_server_name on;

以下为示例配置:

server {    
    index index.php index.html index.htm;

    server_name site2.com www.site2.com;

    access_log /var/log/nginx/access_site2.log;
    error_log /var/log/nginx/error_site2.log;

    location / {
        proxy_pass https://www.site1.com/site2/;
        proxy_ssl_server_name on;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/site2.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/site2.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
    if ($host = www.site2.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    if ($host = site2.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    listen [::]:80;
    server_name site2.com www.site2.com;
    return 404; # managed by Certbot
}

相关内容