Контактная форма не работает на Ubuntu VPS-DigitalOcean - ошибка 405 не разрешена nginx / 1.4.6 (Ubuntu) [дубликат]

Следующее сообщение об ошибке, очищает, говорит, что версия selenium и geckdriver, которую вы используете, не поддерживает текущий Firefox, поскольку он был обновлен.

1501246654252 addons.manager DEBUG Application has been upgraded

Есть два способа решить этот

обновление webdriver и geckdriver Downgrade Firefox
34
задан debeka 25 June 2014 в 18:52
поделиться

4 ответа

Эта конфигурация для вашего nginx.conf должна вам помочь.

https://gist.github.com/baskaran-md/e46cc25ccfac83f153bb

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }

    error_page  404     /404.html;
    error_page  403     /403.html;

    # To allow POST on static pages
    error_page  405     =200 $uri;

    # ...
}
40
ответ дан Baskar 28 August 2018 в 22:02
поделиться

Это реальное перенаправление прокси-сервера на предполагаемый сервер.

server {
  listen          80;
  server_name     localhost;
location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
    proxy_pass http://xx.xxx.xxx.xxx/;
    proxy_redirect off;
    proxy_set_header Host $host;

  }
}
2
ответ дан Indra Uprade 28 August 2018 в 22:02
поделиться

Я попробовал решение, которое перенаправляет 405-200, а в производственной среде (в моем случае это балансировка загрузки Google с контейнером Dginx Nginx), этот хак вызывает примерно 502 ошибки (код ошибки балансировки загрузки Google: backend_early_response_with_non_error_status).

В конце концов, я сделал это правильно, заменив Nginx на OpenResty, который полностью совместим с Nginx и имеет больше плагинов.

С помощью ngx_coolkit Теперь Nginx (OpenResty) может корректно обслуживать статические файлы с запросом POST, вот конфигурационный файл в моем случае:

server {
  listen 80;

  location / {
    override_method GET;
    proxy_pass http://127.0.0.1:8080;
  }
}

server {
  listen 8080;
  location / {
    root /var/www/web-static;
    index index.html;
    add_header Cache-Control no-cache;
  }
}

В приведенной выше конфигурации я использую override_method, предлагаемый ngx_coolkit , чтобы переопределить HTTP-метод на GET.

0
ответ дан Siyuan Zhang 28 August 2018 в 22:02
поделиться

Я заметил, что это не работало с установкой static-first-then-reverse-proxy. Вот что это выглядит:

location @app {
  proxy_pass http://localhost:3000$request_uri;
}

location / {
  try_files $uri $uri/ @app;
  error_page 405 @app;
}
0
ответ дан William Casarin 28 August 2018 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: