简体   繁体   中英

How to fix http 414 Request-URI Too Large error on nginx?

I want all traffic going to my web server to be redirected to https on Nginx. However, when I go to my website at http://www.example.com , I get the error "414 Request-URI Too Large" and the URL is ridiculously long -- http://www.example.com/http:://www.example.com/http: : -- and it goes on for a while, which I am assuming is what is giving me this error. But I don't know how to fix this redirection error because my config file for Nginx doesn't contain a $request_uri parameter.

Here's the Nginx config file:

server {
    server_name  example.com;
    return 301 https://www.example.com;

listen 443 ssl; 
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
include /etc/letsencrypt/options-ssl-nginx.conf; 
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
}

server {
 root /var/www/html;
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name www.example.com;
    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            proxy_pass http://localhost:8080; #whatever port your app runs on
            proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;      
        }
    }

  
server {
  if ($host = www.example.com) {
     return 301 https://www.example.com;
  } 


  if ($host = example.com) {
    return 301 https://www.example.com;
  } 
  listen 80 default_server;
  server_name  example.com www.example.com;
  return 404; 
}

Any help would be greatly appreciated!

I want all traffic going to my web server to be redirected to https on Nginx. However, when I go to my website at http://www.example.com , I get the error "414 Request-URI Too Large" and the URL is ridiculously long -- http://www.example.com/http:://www.example.com/http: : -- and it goes on for a while, which I am assuming is what is giving me this error. But I don't know how to fix this redirection error because my config file for Nginx doesn't contain a $request_uri parameter.

Here's the Nginx config file:

server {
    server_name  example.com;
    return 301 https://www.example.com;

listen 443 ssl; 
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
include /etc/letsencrypt/options-ssl-nginx.conf; 
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
}

server {
 root /var/www/html;
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name www.example.com;
    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            proxy_pass http://localhost:8080; #whatever port your app runs on
            proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;      
        }
    }

  
server {
  if ($host = www.example.com) {
     return 301 https://www.example.com;
  } 


  if ($host = example.com) {
    return 301 https://www.example.com;
  } 
  listen 80 default_server;
  server_name  example.com www.example.com;
  return 404; 
}

Any help would be greatly appreciated!

I fix this issue with :

  1. Open your nginx.conf file /etc/nginx/conf.d/nginx.conf

  2. Add this code inside http

 fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; client_max_body_size 24M; client_body_buffer_size 128k; client_header_buffer_size 5120k; large_client_header_buffers 16 5120k;

  1. Reload your nginx with service nginx reload

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM