Reactjs 如何在docker上的Nginx反向代理中重定向多个应用程序?
我正在docker上运行nginx反向代理和两个React.js应用程序。我想通过添加/app1或/app2,使两个应用都可以通过同一端口访问。当我只有http时,它工作了,但现在我添加了ssl,它不工作了 这是我的default.confReactjs 如何在docker上的Nginx反向代理中重定向多个应用程序?,reactjs,docker,ssl,nginx,reverse-proxy,Reactjs,Docker,Ssl,Nginx,Reverse Proxy,我正在docker上运行nginx反向代理和两个React.js应用程序。我想通过添加/app1或/app2,使两个应用都可以通过同一端口访问。当我只有http时,它工作了,但现在我添加了ssl,它不工作了 这是我的default.conf server { listen 80; listen [::]:80; server_name xxx.xxx.xxx.xx; if ($scheme = http) { return 301
server {
listen 80;
listen [::]:80;
server_name xxx.xxx.xxx.xx;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl; # 'ssl' parameter tells NGINX to decrypt the traffic
server_name xxx.xxx.xxx.xx;
ssl on;
ssl_certificate xxx.xxx.xxx.xx.pem;
ssl_certificate_key xxx.xxx.xxx.xx-key.pem;
ssi on;
proxy_intercept_errors on;
location /app1 {
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://app1:5000;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /app2 {
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://app2:5000;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
这是我的docker-compose.yml
version: "3.1"
services:
app1:
stdin_open: true
build: app1/app1
networks:
- local-network
environment:
- NODE_ENV=production
- PORT=5000
app2:
stdin_open: true
build: app2/app2
networks:
- local-network
environment:
- NODE_ENV=production
- PORT=5000
micro-frontend-nginx:
container_name: micro-frontend-nginx
build: nginx
volumes:
- ./assets:/var/www
ports:
- "8080:80"
- "443:443"
networks:
- local-network
depends_on:
- app1
- app2
networks:
local-network:
这些是我指定任何端口的文件。你能告诉我为什么不能正确重定向应用程序吗
更新:
错误日志:
2020/10/30 12:40:30[错误]7#7:*1 SSL(SSL:
错误:140770FC:SSL例程:SSL23\u GET\u SERVER\u HELLO:unknown protocol)
SSL握手到上游时,客户端:192.168.160.1,服务器:
192.168.178.94,请求:“GET/app2 HTTP/1.1”,上游:https://192.168.160.2:5000/app2,主机:“192.168.178.94”
在
proxy\u pass
语句中,您指定了http://而不是https://-这可能是问题所在吗?如果要解决这个问题,您可以添加一些日志输出来帮助确定问题所在吗?我这样做了,它也失败了。我还不熟悉反向代理,所以你能告诉我在哪里可以找到日志输出吗?它给了我错误的网关。我添加了错误日志。你考虑过了吗?-它的设置很简单,您不需要担心nginx的配置。