Переписать nginx url - PullRequest
       12

Переписать nginx url

0 голосов
/ 05 июля 2019

У меня проблема с переписыванием URL в nginx.Проблема в том, что если URL содержит домен / .well-known / acme-challenge / его следует заменить на домен / папку / .well-known / acme-challenge.Как я могу переписать nginx для этого, чтобы он указывал на правильное местоположение.

Запрос конфигурации nginx работает с этим URL: домен / папка / .well-known / acme-challenge, но я хочу, чтобы он перенаправилкогда он находит что-то вроде домена / .well-known / acme-challenge /

Вот мой nginx conf: -

#upstream jboss {
#    server domain:8080;
#}

server {
  listen       ip:80;
  server_name  domain;

 access_log  /var/log/nginx/domian_access.log;
 error_log /var/log/nginx/domain_error.log warn;

#    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
#    expires 365d;
#}

    location /folder/ {

       # ModSecurityEnabled on;
       # ModSecurityConfig modsecurity.conf;

        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto $scheme;
   #     proxy_set_header X-Forwarded-Host $host;
   #     proxy_set_header X-Forwarded-Server $host;

        proxy_pass http://ip:8080/folder/;
  proxy_connect_timeout       6000;
  proxy_send_timeout          6000;
  proxy_read_timeout          6000;
  send_timeout                6000;

        index  Main.jsp index.html;
    }
 #index  index.html ;
# try_files $uri $uri/ =404;
   #error_page   500 502 503 504  /50x.html;
  #location = /50x.html {
  #  root   html;
  #}

1 Ответ

0 голосов
/ 05 июля 2019

Я не думаю, что вам нужно переписать URL-адрес, но отправить URL-адрес в нужную папку..well-known / acme-challenge, как известно, является проблемой для ssl-сертификатов, которые создаются автоматически (let'encrypt), поэтому просто установите псевдоним в папку, где ваш бот пишет «вызов», и вы готовы к работе.

location /.well-known/acme-challenge {
    auth_basic          off;
    alias /directory/to/challenge;
    default_type text/plain;
}

Таким образом, он будет «принимать» и правильно отвечать на вызов

Даже если вы все еще хотите переписать его, установите перенаправление на строку domain / folder / $ request_uri:

location /.well-known/acme-challenge {
    return 301 http://$host/folder/$request_uri;
}
...