2016-05-31 1 views
0

Я теряю все свои волосы сейчас.Certbot: не могу настроить nginx на webroot

Я пытаюсь установить Certbot (letencrypt) на свой сервер. Но я не могу даже сделать URL http://myapp.com/.well-known/acme-challenge/myfile доступны:

namei -om /var/www/certbot/.well-known/acme-challenge/myfile 
f: /var/www/certbot/.well-known/acme-challenge/myfile 
drwxr-xr-x 1000 1000/
drwxr-xr-x root root var 
drwxr-xr-x root root www 
drwxr-xr-x root root certbot 
drwxr-xr-x root root .well-known 
drwxr-xr-x root root acme-challenge 
-rw-r--r-- root root myfile 

и следующие Nginx конфигурации:

upstream myapp { 
    server    localhost:3000; 
} 

server { 
    listen    80; 
    server_name   myapp.com; 

    location /.well-known/acme-challenge { 
    default_type "text/plain"; 
    root /var/www/certbot; 
    } 

    location/{ 
    proxy_pass   http://myapp; 
    proxy_read_timeout 90; 
    } 

} 

Но URL недоступен:

curl -I http://myapp.com/.well-known/acme-challenge/myfile 
HTTP/1.1 404 Not Found 
Server: nginx/1.6.2 
Date: Tue, 31 May 2016 17:40:23 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 47 
Connection: keep-alive 
X-Powered-By: Express 
X-Content-Type-Options: nosniff 

Что же я делать неправильно ??? Пожалуйста, помогите мне!

ответ

1

Я думаю, вы должны указать место, так как оно содержит точку. Например:

location '/.well-known/acme-challenge/' { 
    # ... 
} 

Я не совсем уверен в этом, но я видел, как другие люди делают это, и, похоже, это работает на меня.

+0

Спасибо за помощь. Моя ошибка была гораздо более тупой, чем я, я сообщу ниже. –

0

я, наконец, нашел решение:

Nginx конфигурации сайты были в /etc/nginx/sites-available, но не в /etc/nginx/sites-enabled.

Я создал ссылку с первой на более позднюю, но это не была символическая ссылка (отсутствует опция -s в ln /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled).

Я до сих пор не понимаю используемый случай ссылки не символический, но в моем случае это была проблема.

Смежные вопросы