Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YARP overview page #34764

Merged
merged 10 commits into from
Feb 21, 2025
Merged

YARP overview page #34764

merged 10 commits into from
Feb 21, 2025

Conversation

samsp-msft
Copy link
Member

@samsp-msft samsp-msft commented Feb 19, 2025

YARP doesn't have an overview page that can be linked from the website being created. AI did a good first draft of what the page should contain.


Internal previews

📄 File 🔗 Preview link
aspnetcore/fundamentals/servers/yarp/yarp-overview.md aspnetcore/fundamentals/servers/yarp/yarp-overview
aspnetcore/toc.yml aspnetcore/toc

…e being created. AI did a good first draft of what the page should contain.
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

- Routing: Directs requests to different backend servers based on predefined rules, such as URL patterns or request headers.
- Load Balancing: Distributes incoming traffic across multiple backend servers to ensure no single server is overwhelmed, improving performance and reliability.
- SSL Termination: Offloads the SSL encryption/decryption process from backend servers, reducing their workload.
- Connection Abstraction: The inbound requests from external clients and outbound requests to the backend are independent so can use different versions of HTTP and have independent connection lifetimes.

This comment was marked as duplicate.

- Terminating Connections: The inbound http connections terminate at the proxy and new connections are used for outbound requests to destinations.
- Routing Requests: Based on the routing rules, the reverse proxy determines which backend server (or cluster of servers) should handle the request.
- Forwarding Requests: The reverse proxy forwards the client request to the appropriate backend server
- Connection Pooling: The outbound connections are pooled to reduce connection overhead and make most use of HTTP 1.1 pipelining and parallel requests with HTTP2 & HTTP3

This comment was marked as duplicate.

@Rick-Anderson Rick-Anderson changed the title YARP overview page LOCKED: YARP overview page Feb 19, 2025
@Rick-Anderson Rick-Anderson marked this pull request as draft February 19, 2025 20:55
Rick-Anderson and others added 5 commits February 19, 2025 13:15
Update YARP overview date- branch off of samsp
Removed a couple of comments
Added transforms to the how a reverse proxy handles HTTP section,
@samsp-msft samsp-msft marked this pull request as ready for review February 20, 2025 18:27
- Versions of HTTP, ie, HTTP/1.1, HTTP/2, HTTP/3. The proxy can upgrade or downgrade HTTP versions.
- Connection lifetimes, which enables features like long-polling on the backend while maintaining short client connections.
- Control Over URL-Space: Incoming URLs can be transformed before forwarding to the backend. This abstracts the external URLs from how they are mapped to internal services. Internal service endpoints can change without affecting external URLs.
- Security: Internal service endpoints can be hidden from external exposure, protecting against some types of cyber attacks such as [DDoS attacks](https://www.microsoft.com/security/business/security-101/what-is-a-ddos-attack?msockid=3e35ed3aa4666d8003aaf830a5006c74) and [SQL injection ](/sql/relational-databases/security/sql-injection).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do we help with SQL injection?


## Why use a reverse proxy

Using a reverse proxy offers several advantages:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section feels redundant with the "What a reverse proxy does". I'd merge the two if possible.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, CoPilot and myself duplicated items.
@samsp-msft I can do that if you like.

@samsp-msft originally had the 2 sections, albeit with less duplicates.

@Rick-Anderson Rick-Anderson changed the title LOCKED: YARP overview page YARP overview page Feb 20, 2025
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
- Versions of HTTP, ie, HTTP/1.1, HTTP/2, HTTP/3. The proxy can upgrade or downgrade HTTP versions.
- Connection lifetimes, which enables features like long-polling on the backend while maintaining short client connections.
- Control Over URL-Space: Incoming URLs can be transformed before forwarding to the backend. This abstracts the external URLs from how they are mapped to internal services. Internal service endpoints can change without affecting external URLs.
- Security: Internal service endpoints can be hidden from external exposure, protecting against some types of cyber attacks such as [DDoS attacks](https://www.microsoft.com/security/business/security-101/what-is-a-ddos-attack?msockid=3e35ed3aa4666d8003aaf830a5006c74) and [SQL injection ](/sql/relational-databases/security/sql-injection).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CoPilot hallucinations, I should have checked.

Suggested change
- Security: Internal service endpoints can be hidden from external exposure, protecting against some types of cyber attacks such as [DDoS attacks](https://www.microsoft.com/security/business/security-101/what-is-a-ddos-attack?msockid=3e35ed3aa4666d8003aaf830a5006c74) and [SQL injection ](/sql/relational-databases/security/sql-injection).
- Security: Internal service endpoints can be hidden from external exposure, protecting against some types of cyber attacks such as [DDoS attacks](https://www.microsoft.com/security/business/security-101/what-is-a-ddos-attack?msockid=3e35ed3aa4666d8003aaf830a5006c74).

@samsp-msft
Copy link
Member Author

@Rick-Anderson - please merge if you are happy

@Rick-Anderson Rick-Anderson merged commit c5f878a into main Feb 21, 2025
3 checks passed
@Rick-Anderson Rick-Anderson deleted the samsp/yarp-overview branch February 21, 2025 01:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants