我现在失去了所有头发。
我正在尝试将Certbot(letsencrypt)设置到我的服务器。但我甚至无法通过以下网址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;
}
}
但网址不可用:
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
我做错了什么???请帮帮我!
答案 0 :(得分:1)
我认为你应引用该位置,因为它包含一个点。像这样:
location '/.well-known/acme-challenge/' {
# ...
}
我对此并不完全确定,但我看到其他人这样做,似乎对我有用。
答案 1 :(得分:0)
我终于找到了解决方案:
nginx配置网站位于/etc/nginx/sites-available
但不在/etc/nginx/sites-enabled
。
我确实创建了从前者到后者的链接,但它不是符号链接(缺少-s
中的ln /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled
选项。)
我仍然不明白链接的用例不是象征性的,但在我的情况下就是问题。