如何在具有相同域的相同Nginx上使用angular和apache

问题描述 投票:2回答:1

TLDR:配置nginx侦听端口80并使用

  • 如果是/api,则在localhost:8081上使用expressJS
  • 如果/bloglocalhost:8082上的wordpress / apache2
  • 其他角度服务器localhost:8080角度服务器和快递服务器正常工作,但需要配置wordpress / apache。

详细,我在同一VPS上安装了以下组件:

  1. 端口angular上的[8080前端
  2. [expressJS后端位于端口8081]
  3. WordPress在端口8082的apache2上运行

当前,我正在使用nginx来处理请求,并且配置是

server {
        listen 443;

        ssl      on;
        ssl_certificate         /home/user/.ssh/ssl/ssl.crt;
        ssl_certificate_key     /home/user/.ssh/ssl/ssl.key.txt;

        root /var/www/html;

        index index.html index.htm index.nginx-debian.html index.php;

        server_name _;

        location / {
                proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_pass          http://localhost:8080;
            proxy_read_timeout  90;
        }

        location /api {
                proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_pass          http://localhost:8081;
            proxy_read_timeout  90;
        }
}

现在我需要在mysite.com/blog上托管我的博客。所以我在nginx配置中添加了以下内容。

 location /blog {
                proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_pass          http://localhost:8082;
            proxy_read_timeout  90;
        }

现在,当我转到example.com/blog时,它将重定向到example.com:8082/blog。如何同时配置nginx和apache?

PS:只要wordpress有效,就不需要Apache。但我喜欢保留nginx

PPS:我已配置nginx通过重定向301将所有http请求转发到https://example.com/]] >>

[TLDR:配置nginx以侦听端口80,并使用/ api,在localhost:8081上使用expressJS如果/ blog,在localhost:8082上的wordpress / apache2否则使用angular服务器localhost:8080 angular和express服务器...

php angular wordpress apache nginx
1个回答
0
投票

[您需要在/ URL的末尾添加一个额外的proxy_pass,以便Nginx负责URL重写:

location /blog {
  proxy_pass http://localhost:8082/;
}
© www.soinside.com 2019 - 2024. All rights reserved.