From 14b6dbc48d70ec51498aca57d4097db8e15b3fbd Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 6 Jun 2022 20:59:06 +0300 Subject: [PATCH 1/5] fixed identityserver seed data --- etc/docker/docker-compose.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/etc/docker/docker-compose.yml b/etc/docker/docker-compose.yml index 769b0e49..d8595046 100644 --- a/etc/docker/docker-compose.yml +++ b/etc/docker/docker-compose.yml @@ -52,7 +52,7 @@ services: condition: service_healthy rabbitmq: condition: service_healthy - restart: on-failure + restart: on-failure networks: - eshoponabp-network eshop-st-identity: @@ -74,15 +74,15 @@ services: - RabbitMQ__Connections__Default__HostName=rabbitmq - IdentityServerClients__Web__RootUrl=https://eshop-st-web - IdentityServerClients__PublicWeb__RootUrl=https://eshop-st-public-web - - IdentityServerClients__WebGateway__RootUrl=https://localhost:44372 + - IdentityServerClients__WebGateway__RootUrl=https://eshop-st-gateway-web - IdentityServerClients__PublicWebGateway__RootUrl=https://eshop-st-gateway-web-public - IdentityServerClients__IdentityService__RootUrl=https://eshop-st-identity - IdentityServerClients__AdministrationService__RootUrl=https://eshop-st-administration - IdentityServerClients__AccountService__RootUrl=https://eshop-st-authserver - - IdentityServerClients__CatalogService__RootUrl=https://localhost:44354 - - IdentityServerClients__BasketService__RootUrl=https://localhost:44355 - - IdentityServerClients__OrderingService__RootUrl=https://localhost:44356 - - IdentityServerClients__PaymentService__RootUrl=https://localhost:44357 + - IdentityServerClients__CatalogService__RootUrl=https://eshop-st-catalog + - IdentityServerClients__BasketService__RootUrl=https://eshop-st-basket + - IdentityServerClients__OrderingService__RootUrl=https://eshop-st-ordering + - IdentityServerClients__PaymentService__RootUrl=https://eshop-st-payment depends_on: redis: condition: service_healthy @@ -285,7 +285,7 @@ services: context: ../../ dockerfile: gateways/web/src/EShopOnAbp.WebGateway/Dockerfile environment: - - ASPNETCORE_ENVIRONMENT=Docker # Yarp can't resolve dns, needs to be overridden + #- ASPNETCORE_ENVIRONMENT=Docker # Yarp can't resolve dns, needs to be overridden - ASPNETCORE_URLS=http://+:80; - App__SelfUrl=https://eshop-st-gateway-web - App__CorsOrigins=https://eshop-st-web @@ -300,8 +300,6 @@ services: - ReverseProxy__Clusters__feature-management-cluster__Destinations__destination1__Address=http://eshop-st-administration - ReverseProxy__Clusters__permission-management-cluster__Destinations__destination1__Address=http://eshop-st-administration - ReverseProxy__Clusters__setting-management-cluster__Destinations__destination1__Address=http://eshop-st-administration - # ports: - # - "44372:443" depends_on: redis: condition: service_healthy From 012d880733ec40db347f90c6c0e42f99d8922121 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 6 Jun 2022 20:59:10 +0300 Subject: [PATCH 2/5] added url re-write to https --- etc/docker/nginx/conf.d/default.conf | 111 ++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/etc/docker/nginx/conf.d/default.conf b/etc/docker/nginx/conf.d/default.conf index 60df3f24..c1a6e8bc 100644 --- a/etc/docker/nginx/conf.d/default.conf +++ b/etc/docker/nginx/conf.d/default.conf @@ -1,5 +1,15 @@ server { listen 80; + server_name eshop-st-administration; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-administration:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-administration; @@ -15,6 +25,16 @@ server { } server { listen 80; + server_name eshop-st-identity; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-identity:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-identity; @@ -30,6 +50,16 @@ server { } server { listen 80; + server_name eshop-st-authserver; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-authserver:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-authserver; @@ -41,11 +71,20 @@ server { location / { proxy_pass http://eshop-st-authserver:80; proxy_set_header Host $host; - add_header from-ingress true; } } server { listen 80; + server_name eshop-st-web; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-web:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-web; @@ -65,6 +104,16 @@ server { } server { listen 80; + server_name eshop-st-public-web; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-web:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-public-web; @@ -84,6 +133,16 @@ server { } server { listen 80; + server_name eshop-st-basket; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-basket:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-basket; @@ -99,6 +158,16 @@ server { } server { listen 80; + server_name eshop-st-catalog; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-catalog:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-catalog; @@ -114,6 +183,16 @@ server { } server { listen 80; + server_name eshop-st-ordering; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-ordering:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-ordering; @@ -129,6 +208,16 @@ server { } server { listen 80; + server_name eshop-st-payment; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-payment:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-payment; @@ -144,6 +233,16 @@ server { } server { listen 80; + server_name eshop-st-gateway-web-public; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-gateway-web-public:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-gateway-web-public; @@ -159,6 +258,16 @@ server { } server { listen 80; + server_name eshop-st-gateway-web; + + return 301 https://$host$request_uri; + + location / { + proxy_pass http://eshop-st-gateway-web:80; + proxy_set_header Host $host; + } +} +server { listen 443 ssl; server_name eshop-st-gateway-web; From 266d915ab30ebaec594104719cb23600162b3139 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 6 Jun 2022 21:42:24 +0300 Subject: [PATCH 3/5] added forwarded headers for signalr --- .../src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs index b1e009f4..706e7ee2 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs @@ -19,6 +19,7 @@ using Microsoft.IdentityModel.Protocols.OpenIdConnect; using StackExchange.Redis; using System; using System.Net.Http.Headers; +using Microsoft.AspNetCore.HttpOverrides; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.AspNetCore.Authentication.OpenIdConnect; @@ -216,6 +217,11 @@ public class EShopOnAbpPublicWebModule : AbpModule { app.UseErrorPage(); } + + app.UseForwardedHeaders(new ForwardedHeadersOptions + { + ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto + }); app.UseCorrelationId(); app.UseStaticFiles(); From 4847a7e2adde08632e706ed443244c6dfebb7eeb Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 6 Jun 2022 21:42:34 +0300 Subject: [PATCH 4/5] updated nginx configuration for signalr --- etc/docker/nginx/conf.d/default.conf | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/etc/docker/nginx/conf.d/default.conf b/etc/docker/nginx/conf.d/default.conf index c1a6e8bc..13dc3554 100644 --- a/etc/docker/nginx/conf.d/default.conf +++ b/etc/docker/nginx/conf.d/default.conf @@ -239,7 +239,12 @@ server { location / { proxy_pass http://eshop-st-gateway-web-public:80; - proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection keep-alive; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; } } server { @@ -253,7 +258,12 @@ server { location / { proxy_pass http://eshop-st-gateway-web-public:80; - proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection keep-alive; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; } } server { From 0b9237bf209f00ca6c79b4578233741078e65ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Go=CC=88khan=20S=CC=A7engu=CC=88n?= Date: Tue, 7 Jun 2022 20:08:23 +0300 Subject: [PATCH 5/5] Fix signalr proxying over nginx --- etc/docker/docker-compose.yml | 5 ++-- etc/docker/nginx/conf.d/default.conf | 34 +++++++++++++--------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/etc/docker/docker-compose.yml b/etc/docker/docker-compose.yml index d8595046..402d38f5 100644 --- a/etc/docker/docker-compose.yml +++ b/etc/docker/docker-compose.yml @@ -22,7 +22,8 @@ services: - eshop-st-web - eshop-st-public-web - eshop-st-gateway-web-public - - eshop-st-gateway-web + - eshop-st-gateway-web + restart: on-failure networks: - eshoponabp-network @@ -245,7 +246,7 @@ services: context: ../../ dockerfile: apps/angular/Dockerfile volumes: - - ./nginx/dynamic-env.json://usr/share/nginx/html/dynamic-env.json + - ./nginx/dynamic-env.json:/usr/share/nginx/html/dynamic-env.json depends_on: redis: condition: service_healthy diff --git a/etc/docker/nginx/conf.d/default.conf b/etc/docker/nginx/conf.d/default.conf index 13dc3554..868da3a6 100644 --- a/etc/docker/nginx/conf.d/default.conf +++ b/etc/docker/nginx/conf.d/default.conf @@ -3,11 +3,6 @@ server { server_name eshop-st-administration; return 301 https://$host$request_uri; - - location / { - proxy_pass http://eshop-st-administration:80; - proxy_set_header Host $host; - } } server { listen 443 ssl; @@ -124,11 +119,26 @@ server { location / { proxy_pass http://eshop-st-public-web:80; + proxy_set_header Host $host; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; + + } + + location /signalr-hubs { + proxy_pass http://eshop-st-public-web:80; + + proxy_set_header Host $host; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; } } server { @@ -236,16 +246,6 @@ server { server_name eshop-st-gateway-web-public; return 301 https://$host$request_uri; - - location / { - proxy_pass http://eshop-st-gateway-web-public:80; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection keep-alive; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } } server { listen 443 ssl; @@ -258,10 +258,8 @@ server { location / { proxy_pass http://eshop-st-gateway-web-public:80; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection keep-alive; proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }