Err http2 server refused stream что делать
Перейти к содержимому

Err http2 server refused stream что делать

  • автор:

How To Fix the ERR_HTTP2_PROTOCOL_ERROR

Using the HTTP/2 Network Protocol, you can reach websites faster than ever before. However, you may stumble across an err_http2_protocol_error. This can prevent you from accessing certain web pages. Fortunately, there are many solutions for the HTTP/2 protocol error. Whether you fix the problem within your browser or operating system, you can easily remove this troublesome message. Then, you can continue with your normal online browsing. In this post, we’ll introduce you to the err_http2_protocol_error and its causes. Then, we’ll show you how to fix this problem on both a browser and a personal device. Let’s get started!

What Does the err_http2_protocol_error Mean?

A screenshot showing the err_http2_protocol_error message

When you perform a search, you may receive an “err_http2_protocol_error” message. This can prevent you from accessing a web page, stating that it is currently down or was permanently moved to another address: To understand the err_http2_protocol_error, let’s first discuss the Hypertext Transfer Protocol (HTTP). This is the application protocol that allows the retrieval of online resources. A protocol is a set of rules that controls how data is transferred between clients. In this case, it can govern the HTTP requests between users and web browsers. Currently, most browsers, applications, and systems run on the HTTP/2 network protocol. This updated protocol comes with enhanced efficiency for virtual data communication. Although this update has many benefits, you still may experience errors when accessing online content. Sometimes, the err_http2_protocol_error will display as an HTTP error message and prevent you from accessing the online resource you’re looking for.

What Causes the err_http2_protocol_error?

  • Outdated software. When your device’s operating system or web browser is outdated, it can be incompatible with a certain website. This will cause the err_http2_protocol_error if the site fails to parse your device’s data packets.
  • Corrupted browser cache. If your browser’s cache, cookies, or history is corrupted, then the requested site may be unable to authenticate your device’s legitimacy. As a result, the web server can refuse to make the connection and return this error.
  • Conflicting browser extensions. In some cases, third-party browser extensions can interrupt communication with the website’s server. This can prevent the site from rendering.
  • Third-party antivirus or firewall software. If you’re using antivirus or firewall software to secure your connections, it can prevent you from accessing certain websites.

As you can see, there are multiple reasons why you might see the HTTP/2 protocol error. Luckily, there are also many methods you can use to fix this problem.

How To Fix the err_http2_protocol_error In a Browser

Once you receive the err_http2_protocol_error, you can start troubleshooting to find the source of the issue. Although we’ll fully discuss some methods you can use, there are some simpler fixes you can start with.

First, try refreshing the web page. Hitting F5 on your keyboard will send a request with an If-Modified-Since header. If the site was temporarily down, this may solve the problem.

Alternatively, you can visit the site using a different browser. You may also want to close some tabs if there are too many open. If the error persists, continue with the following methods.

1. Update Your Browser

If you’re making searches with an outdated browser, this can easily lead to an HTTP/2 protocol error. This is because your browser’s data packets are incompatible with the site you’re trying to load.

To fix this problem, you can update your browser. Using Google Chrome, you can simply click on the three-dot icon in the upper right-hand corner and select Update Google Chrome.

If you don’t see this button, your browser is likely already up-to-date. To check if this is the case, go to Help > About Google Chrome:

Click on the about google chrome tag

This will prompt Google Chrome to check for a new update. If there is one, it will automatically install it. To finish updating, you’ll need to relaunch the browser:

Checking for a new update in Google Chrome

If you’re using the Google Chrome mobile app, you can simply open the App Store or Play Store, depending on your device type. Then, check for any app updates and install them!

2. Clear Your Browser Data

Whenever you experience issues during the rendering process, it’s a good idea to clear your browser data. By clearing your cache, cookies, and history, you can enable visited websites to authenticate your device and fulfill the request.

Depending on your browser, there are a few different ways to clear the cache. For Google Chrome, you can select More Tools > Clear Browsing Data:

Clear the browsing data in chrome

Using the pop-up window, you can specify the information you want to clear. You’ll want to be sure to select Cached images and files, but you can also get rid of your browsing history, cookies, and other data:

Clear cached Chrome data

If you’re using Safari, it will be a similar process. To do this, go to Safari > Clear History:

Click on the Safari tab to clear Safari history

Then, you can choose to clear your cache, cookies, and site data from a specific time range. When you’re done, click on Clear History:

Choose a timeframe to remove cached data in Safari

To clear your browser data on Mozilla Firefox, you’ll need to find the hamburger icon in the upper right-hand corner. Next, select History:

Select history in Firefox browser

In the new tab, click on Clear recent history:

Clear Firefox recent history

Like other browsers, you can choose only to clear certain data. However, it’s important to remember to select the Cache option:

Remember to select the Cache option in Firefox

Now that you’ve cleared your browser cache try to visit the website where the error occurred. If you still see the err_http2_protocol_error message, you’ll need to try some alternative solutions.

3. Open a Private or Incognito Browser Window

Whenever you visit a new website, your browser will save information about that site in a cache. Once you visit the page again, your browser will pull the cached data rather than requesting the server all over again. Often, this can make the site load faster on repeat visits.

For this reason, you may want to avoid clearing your browser cache when trying to bypass the HTTP/2 protocol error. In this case, you can launch the browser in private or incognito mode.

This can be an effective one-time solution to avoid permanently deleting the cache or disabling third-party extensions. To do this in Google Chrome, extend the menu and click on New Incognito Window. This will open a private browser:

Open Incognito window in Google Chrome

Using the incognito mode, try to visit the website again. It may enable you to do this without having to use more complicated solutions. However, keep in mind that this is primarily a short-term fix.

4. Disable or Uninstall Browser Extensions

As we mentioned earlier, third-party extensions could potentially interfere with how your browser and a web page interact. After you see the err_http2_protocol_error message, you can consider disabling these extensions to see if the error disappears.

To do this in Google Chrome, visit More Tools > Extensions:

Open Chrome extensions by clicking on the three-dot menu icon

This will take you to a web page that lists your Chrome extensions. First, use the switches on the bottom-right corner to turn off each extension:

A screenshot showing how to disable Chrome extensions

Now that your extensions are disabled try to go to the web page that caused the error. If the page loads, you’ll know that one of your extensions caused the problem.

Now, you can go back to the Extensions page and enable them one by one. After you turn on an extension, see if the error returns. When you find the problematic extension, consider removing it entirely.

5. Turn Off the Browser’s QUIC Protocol

Quick UDP Internet Connections (QUIC) is an encrypted transport network protocol that was developed by Google. Essentially, its goal was to increase the speed, security, and efficiency of HTTP traffic.

Currently, only eight percent of websites use QUIC. Therefore, when sites aren’t configured to process this kind of traffic, it can cause incompatibility between the client and server. As a result, this can display an HTTP/2 protocol error.

To solve this problem, you can turn off the QUIC protocol in your browser. In Chrome, you’ll simply need to enter the following URL into your search bar:

Now you’ll see a highlighted result labeled Experimental QUIC protocol. For this setting, change it to Disabled:

Disabling QUIC protocol

Once you make this change, you’ll need to relaunch your browser. This will disable QUIC, allowing you to view the incompatible website.

Opening Chrome settings

Open Chrome settings

On the left, find the Reset settings tab. Then, select the Restore settings to their original defaults option:

Go to the Reset Settings tab in Chrome

Finally, you’ll just need to confirm that you want to erase your current Chrome settings. If you do, click on Reset settings:

Confirm settings reset popup box

It’s important to keep in mind that this will erase your current search engine history, startup page, pinned tabs, extensions, bookmarks, and more. It will essentially revert your browser to a clean slate. However, it can remove any conflicting software or settings that are causing the HTTP/2 protocol error.

You can also consider resetting the experimental settings in your browser. These are not fully tested, functional features, so they could prevent your browser from communicating properly with a website.

To find your advanced experimental settings, search for the following address:

In the upper right-hand corner, select the Reset All option. If certain features were accidentally enabled, this will revert them to the default settings:

The Experimental Chrome features page

Then, these changes will be applied whenever you relaunch Chrome!

7. Reinstall Google Chrome

After executing all these methods, you may still see the troublesome HTTP/2 protocol error. If so, there could be an error within the Google Chrome app. Even if you restored the default settings, you may want to consider reinstalling the entire browser.

First, you’ll need to delete the browser from your device. To do this with a macOS operating system, open the Applications folder and move the Google Chrome app to the trash:

You can delete Google Chrome if needed

You’ll also want to delete any Chrome software updates. To find them, search for ‘~/Library/Google’ on your device. In your results, delete the “GoogleSoftwareUpdate” folder:

Delete Chrome software update folder

If you’re a Windows user, you’ll use different steps to delete Chrome. To start, click on the Windows Start button and search for the Control Panel. Open it, then find the Programs option. Click on Uninstall a Program under Programs:

Uninstall a program in Windows

Now you’ll need to find Google Chrome and right-click on it. Lastly, hit Uninstall:

Find Google Chrome and uninstall in in Windows

For both Mac and Windows users, you can reinstall Chrome in the same way. You’ll simply need to download the file included on the Google Chrome website:

Download Google Chrome from the website

Although this method could potentially solve the err_http2_protocol_error, it’s best only to use it as a last resort. Deleting Chrome will also remove all of its data, so be sure to try a few simpler solutions beforehand.

How To Fix the err_http2_protocol_error In a Device

So far, we’ve examined some methods to fix the err_http2_protocol_error using a web browser. However, in some cases, the browser may not be the source of the problem. To help you troubleshoot the issue, let’s discuss how to make your device compatible with the HTTP/2 protocol.

1. Reset Your Device’s Date and Time

Although it may not seem like a big deal, it’s important to have the correct date and time displayed on your device. If this information isn’t accurate, the incorrectly time-stamped data packets could be refused. This can lead to an err_http2_protocol_error.

With a Windows operating system, you can right-click on the clock in the bottom-right corner of your desktop. Then, select Adjust date and time:

A screenshot showing Windows time and date settings

If your computer isn’t automatically displaying the right time, you’ll need to disable the Set time automatically setting. Beneath this, be sure to set the correct time zone:

Disabling automatic date and time settings in Windows

Next, select the Change button to Set the date and time manually. In the pop-up window, enter the correct date and time:

Set time and date manually in Windows

For Mac users, click on the Apple menu. Then, select System Preferences. Here, find the Date & Time option:

A screenshot of System Preferences on a Mac

In the bottom-left corner, click on the lock to make changes. Now you can deselect the Set date and time automatically option and choose the correct values:

Reset the date on a Mac computer

After you make these changes, try relaunching the web page!

2. Update Your Operating System

If you haven’t updated your device in a while, this can cause a multitude of performance issues. To ensure you can avoid any conflicts between your operating system and visited websites, you’ll need to check for recent upgrades.

Using a macOS device, you can start by performing a backup. Then, go to System Preferences > Software Update:

Perform a Mac software update

In this window, you’ll see any newly available updates. If you’re ready to install them, click on Update Now.

With a Windows computer, you can navigate to Start > Settings > Windows Update. If you haven’t already, install the latest update:

Perform a Windows update

Once your device is up-to-date, it should be compatible with most websites that you want to visit. To see if this is the case, check whether the HTTP/2 protocol error is fixed. If not, continue with the following methods.

3. Flush the DNS

On the internet, the Domain Name System (DNS) functions as an index for all available websites and their unique IP addresses. When you visit a website, your operating system or browser will save this information in a database. This can lead to faster loading times on revisited websites.

If you’re seeing the err_http2_protocol_error, you can try flushing your DNS cache. Put simply, this will erase the IP addresses and other DNS data from your computer.

To flush a Mac DNS cache, open the command line interface called Terminal. In this window, enter the following command:

sudo killall -HUP mDNSResponder

This should successfully clear the DNS, removing the HTTP/2 protocol error. However, keep in mind that you’ll need to use slightly different processes for older versions of macOS.

If you have Windows 10, 8, 7, or XP, you can start by opening Command Prompt. In the command line, paste this command:

You should see a confirmation message once the DNS has been flushed!

4. Check Antivirus Software

To keep your computer safe while you’re browsing, you likely have an antivirus program installed. Although this software offers many security benefits, it can occasionally flag certain applications as malicious. When this happens, it may unnecessarily limit your access to a website.

If none of the previous methods worked, you can check your antivirus software to see if it is functioning properly. First, open your notifications, which can display new security issues:

Antivirus software notifications

Most antivirus software will also have a quarantine list. This will contain all of the detected security threats on your computer:

Antivirus software quarantine page

In either of these areas, evaluate whether any unwanted applications are being flagged. If so, you may need to temporarily disable your antivirus software.

Summary

When the err_http2_protocol_error happens, it can be extremely frustrating. Instead of quickly viewing necessary online resources, you’ll only be able to see an error message. Luckily, you can take a few simple steps to solve this problem.

Even as a complete beginner, you can optimize your web browser to bypass HTTP/2 protocol errors. By simply clearing the cache, opening a private window, or turning off third-party extensions, you can successfully view the blocked content. If the problem lies in your operating system, you can consider performing software updates or flushing the DNS cache instead.

As a website owner, you’ll need to know that your web pages can be reached at any time. With Kinsta, you’re able to use our HTTP Status and Redirect Checker to make sure your website is functioning correctly. Additionally, you can check your disk usage in the MyKinsta dashboard!

Get all your applications, databases, and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:

  • Easy setup and management in the MyKinsta dashboard
  • 24/7 expert support
  • The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
  • An enterprise-level Cloudflare integration for speed and security
  • Global audience reach with up to 35 data centers and 260 PoPs worldwide

Get started with a free trial of our Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.

Is your WordPress site slow?

Uncover your website’s performance bottlenecks to deliver a better user experience.

Why am I getting a «Server refused our key» error when I try to connect to my EC2 instance using SSH?

I’m receiving the «Server refused our key» error when connecting to my Amazon Elastic Compute Cloud (Amazon EC2) instance using SSH.

Short description

There are multiple reasons why an SSH server (sshd) refuses a private SSH key. The following are some common reasons that you might receive this error:

  • You’re using the incorrect user name for your AMI when connecting to your EC2 instance. The usual user names are ec2-user, ubuntu, centos, root, or admin.
  • The user trying to access the instance was deleted from the server or the account was locked.
  • There are permissions issues on the instance or you’re missing a directory.
  • You’re using the incorrect private key file when connecting to your EC2 instance. For more information, see the Verify that the private key is correct section in Why am I receiving «imported-openssh-key» or «Putty Fatal Error» errors when connecting to my Amazon Elastic Compute Cloud (Amazon EC2) Linux instance?
  • SSH server settings in /etc/ssh/sshd_config were changed. For more information, see How do I use SSH to access my EC2 instance after changing the instance’s sshd_config file?
  • The operating system couldn’t mount (/etc/fstab) home directories. For more information, see the Dependency failed errors section in Why is my EC2 Linux instance not booting and going into emergency mode?

Resolution

You’re using the incorrect user name for your AMI when connecting to your EC2 instance

The user trying to access the instance was deleted from the server or the account was locked

If the user trying to access the instance was deleted from the server, add the user back as a new user. For more information, see How do I add new user accounts with SSH access to my Amazon EC2 Linux instance?

There are permissions issues on the instance or you’re missing a directory

There are four methods for verifying permissions and directories on the instance:

Method 1: Use the EC2 Serial Console

If you’ve turned on EC2 Serial Console for Linux, then you can use the serial console to troubleshoot supported Nitro-based instance types. The serial console helps you troubleshoot boot issues, network configuration, and SSH configuration issues. The serial console connects to your instance without requiring a working network connection. You can access the serial console using the Amazon EC2 console or the AWS Command Line Interface (AWS CLI).

Before using the serial console, you must grant access to it at the account level. Then, you must create AWS Identity and Access Management (IAM) policies granting access to your IAM users. Also, every instance using the serial console must include at least one password-based user. If your instance is unreachable and you haven’t configured access to the serial console, follow the instructions in Method 2, 3, or 4. For information on configuring the EC2 Serial Console for Linux, see Configure access to the EC2 Serial Console.

Method 2: Use AWS Systems Manager Session Manager to log into the instance and check the permissions

Note: Installation of the SSM Agent is required to use this method. For more information on Session Manager and a complete list of prerequisites, see Setting up Session Manager.

3. Use the stat command to make sure the permissions of the files under the home directory are correct. The following is a list of the correct permissions:

  • Linux home directory, /home, for example, should be (0755/drwxr-xr-x).
  • User’s home directory, /home/ec2-user/, for example, should be (0700/drwx——).
  • .ssh directory permission, /home/ec2-user/.ssh, for example, should be (0700/drwx——).
  • authorized_keys file permission, /home/ec2-user/.ssh/authorized_keys, for example, should be (0600/-rw——-).

The following is an example of the stat command and the resulting output. In this example, ec2-user is the user name. Change the user name according to your specific AMI:

$ stat /home/ec2-user/ File: '/home/ec2-user/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 10301h/66305d Inode: 18322 Links: 3 Access: (0700/drwx------) Uid: ( 500/ec2-user) Gid: ( 500/ec2-user)

4. If the permissions don't match the preceding values, then run the following commands:

$ sudo chown root:root /home $ sudo chmod 755 /home $ sudo chown ec2-user:ec2-user /home/ec2-user -R $ sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh $ sudo chmod 600 /home/ec2-user/.ssh/authorized_keys

6. SSH to your instance.

Method 3: Automatically correct issues causing the error by running the AWSSupport-TroubleshootSSH document

AWSSupport-TroubleshootSSH automation document installs the Amazon EC2Rescue tool on the instance, and then checks for and corrects some issues that cause remote connection errors when connecting to a Linux machine through SSH. For more information, see I'm receiving errors when trying to connect to my EC2 instance using SSH. How can I use the AWSSupport-TroubleshootSSH automation workflow to troubleshoot SSH connection issues?

Method 4: Use user data to fix permissions on the instance

Important:

  • This recovery procedure requires you to stop and start your instance. When you do this, the data on instance store volumes is lost. For more information, see Determine the root device type of your instance.
  • If your instance is part of an Amazon EC2 Auto Scaling group, then the instance might terminate when stopped. This might also occur on instances launched by services that use AWS Auto Scaling, such as Amazon EMR, AWS CloudFormation, AWS Elastic Beanstalk, and so on. Instance termination in this scenario depends on the instance scale-in protection settings for your Auto Scaling group. If your instance is part of an Auto Scaling group, then temporarily remove the instance from the Auto Scaling group before starting the resolution steps.
  • Stopping and restarting the instance changes the public IP address of your instance. It's a best practice to use an Elastic IP address instead of a public IP address when routing external traffic to your instance.
  • You can't change the SSH key using user data if your instance's root device is an instance store volume. For more information, see Determine the root device type of your instance.
  • Updating your instance's user data applies to all distributions that support cloud-init directives. Cloud-init must be installed and configured for these instructions to be successful. For more information about the cloud-init SSH module, see SSH - Configure SSH and SSH keys in the Cloud-init documentation.

1. Open the Amazon EC2 console, and then select your instance.

2. Choose Instance State, and then choose Stop instance.

Note: If Stop is not available, either the instance is already stopped or its root device is an instance store volume.

3. Choose Actions, choose Instance Settings, and then choose Edit User Data.

4. Copy the following script into the User Data field, and then select Save. Make sure to copy the entire script, and don't add extra spaces.

Note: The following script uses the user name ec2-user. Change ec2-user to the user name for your AMI.

Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash chown root:root /home chmod 755 /home chown ec2-user:ec2-user /home/ec2-user -R chmod 700 /home/ec2-user /home/ec2-user/.ssh chmod 600 /home/ec2-user/.ssh/authorized_keys --//

5. Start the instance and then SSH into the instance.

Note: By default, the user data script runs once per instance. This procedure changes the default behavior to add the public key to every reboot, stop, or start of the instance. To restore the default behavior, remove the custom user data. As a best practice, consider the security implications of allowing user data to run after the first boot of an instance. You can modify the user data of an instance with the ModifyInstanceAttribute API method. To restrict access to this method, use IAM policies.

Saved searches

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

square / okhttp Public

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

Recover from REFUSED_STREAM in HTTP/2 #2543

swankjesse opened this issue May 8, 2016 · 13 comments

Recover from REFUSED_STREAM in HTTP/2 #2543

swankjesse opened this issue May 8, 2016 · 13 comments
bug Bug in existing code

Comments

swankjesse commented May 8, 2016

OkHttp promises to persevere when there’s trouble, but it doesn’t recover from REFUSED_STREAM in HTTP/2. We should transparently retry when an HTTP/2 server returns a REFUSED_STREAM error.

We should set noNewStreams = true on the connection that refused the stream. That is a good enough policy that’s in spirit of the HTTP/2 spec: it’ll prevent the connection from being used for any future streams. Then when we retry we’ll get a different connection and with any luck that one will accept the stream.

We need a special case if the refused stream’s streamId is 1. That will let us recover when Nginx refuses request bodies sent before the settings ack. In that case we should retry on the same physical connection, which we can assume has since ACK’d the settings. It’s still a little bit racy, but unlikely to be a problem in practice. More discussion on this workaround on issue 2506 and on the http-wg list.

The text was updated successfully, but these errors were encountered:

Inconsistent ERR_HTTP2_SERVER_REFUSED_STREAM error on page-load

Do you have any security plugin installed on your site? I faced similar issue a week ago. The site had 2 security plugins installed together and I uninstall one of them and it fixed the issue for me.

Mar 25, 2021 at 1:16

Mmmh, I guess not a security plugin in classic sense, but I do have a Password Protection Plugin installed (see: Password Protect WordPress Lite in the added list of installed plugins). With the plugin I have a sitewide protection enabled as the site is not for public access. . Before I will be able to deactivate the plugin and check if this solves the issue I'll probably have to look for some kind of alternative in limiting the access to the site, but I'll have to clarify that. I'll do that tomorrow. . Thanks for the hint in that direction.

Mar 25, 2021 at 2:19

Minor Update: We have disabled the plugin and very briefly afterwards the other user, who experienced these errors, had them again. But, as it was very immediate after the deactivation of the plugin that could be browser- / caching-related (?). . Besides that one occurence we've had no errors since then. As the errors even before the deactivation only happened seemingly arbitrarily, we do not know (yet), if the issue is actually solved. .

Mar 27, 2021 at 17:11

Update: The error still occured after disabling the `Password Protect WordPress Lite´ Plugin. So in our case a security plugin wasn't the cause.

Apr 2, 2021 at 14:16

4 Answers 4

This is not related to WordPress. It's related to either Apache or Nginx using the HTTP/2 standard.

REFUSED_STREAM (0x7): The endpoint refused the stream prior to performing any application processing (see Section 8.1.4 for details).

It can either come from too many concurrent streams:

Endpoints MUST NOT exceed the limit set by their peer. An endpoint that receives a HEADERS frame that causes its advertised concurrent stream limit to be exceeded MUST treat this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR or REFUSED_STREAM. The choice of error code determines whether the endpoint wishes to enable automatic retry (see Section 8.1.4) for details).

It can also be sent during a Push Response operation:

If the client determines, for any reason, that it does not wish to receive the pushed response from the server or if the server takes too long to begin sending the promised response, the client can send a RST_STREAM frame, using either the CANCEL or REFUSED_STREAM code and referencing the pushed stream's identifier.

Or if the client is trying to connect using HTTP/1.1:

Servers that don’t wish to process the HTTP/1.1 response should reject stream 1 with a REFUSED_STREAM error code immediately after sending the connection preface to encourage the client to retry the request over the upgraded HTTP/2 connection.

There is no way for me to pinpoint what is happening during those requests, as it can have multiple reasons, as stated above.

So I suggest you a couple of options:

  • Pass your site's traffic throughugh Cloudflare, so they act as a middle-man for these connections and normalize the requests sent to your server
  • You can increase the SETTINGS_MAX_CONCURRENT_STREAMS to minimize the risk of sending a REFUSED_STREAM . If you use Nginx, you can see how to do this here: http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_concurrent_streams
  • If you don't know how to do the above, contact your hosting company and ask them to do it for you and upgrade your Nginx version, as some older versions are known to have issues.
  • Disable HTTP/2 in Nginx. How to disable http2 in nginx
  • As a last resource, you can migrate to another hosting company.

If you use Apache, everything I said above applies to it as well.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *