NGINX - 此处不允许 "server" 指令
NGINX - "server" directive is not allowed here
我正在尝试重新配置我的 NGINX 安装以代理到本地 ghost 安装。
除此之外,我正在添加 SSL (letsencrypt),但我一直收到错误消息。
我得到的错误是 -
nginx -t -c /etc/nginx/sites-available/ghost
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-available/ghost:1
nginx: configuration file /etc/nginx/sites-available/ghost test failed
这是我的配置
server {
listen 80;
server_name domainnamehere.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
server_name www.nonstopdev.com;
access_log /var/log/nginx/domainnamehere.com.access.log;
error_log /var/log/nginx/domainnamehere.com.error.log;
ssl on;
ssl_certificate /etc/letsencrypt/live/domainnamehere.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domainnamehere.com/privkey.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
以下配置工作正常,没有任何问题 -
server {
listen 80;
server_name mydomainname.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
看起来配置不完整。
正常的 NGINX 配置从 nginx.conf 文件(即 /etc/nginx/nginx.conf)开始,该文件声明用户、进程 ID 和其他必要的内容,后跟一个 http { } 分支。服务器 {} 分支通常保存在 conf.d 目录中,或者通常包含在 nginx.conf 中此 http{} 分支末尾的位置。因此,即使它们以服务器作为外节点开始,它也不是真正外节点。它在 http 节点内。
如果您直接加载配置文件,请确保它包含完整的 nginx 配置,包括这些缺失的部分?
我能够使用以下配置文件解决问题。
看起来不错,列出了许多 Ghost 和 HTTPS 重定向的错误。
server {
listen 443;
ssl on;
server_name mydomain.com www.mydomain.com;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
location / {
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 Host $http_host;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:2368;
}
}
server {
listen 80;
server_name mydomain.com;
return 301 https://$host$request_uri;
}
我正在尝试重新配置我的 NGINX 安装以代理到本地 ghost 安装。
除此之外,我正在添加 SSL (letsencrypt),但我一直收到错误消息。
我得到的错误是 -
nginx -t -c /etc/nginx/sites-available/ghost
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-available/ghost:1
nginx: configuration file /etc/nginx/sites-available/ghost test failed
这是我的配置
server {
listen 80;
server_name domainnamehere.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
server_name www.nonstopdev.com;
access_log /var/log/nginx/domainnamehere.com.access.log;
error_log /var/log/nginx/domainnamehere.com.error.log;
ssl on;
ssl_certificate /etc/letsencrypt/live/domainnamehere.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domainnamehere.com/privkey.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
以下配置工作正常,没有任何问题 -
server {
listen 80;
server_name mydomainname.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
看起来配置不完整。
正常的 NGINX 配置从 nginx.conf 文件(即 /etc/nginx/nginx.conf)开始,该文件声明用户、进程 ID 和其他必要的内容,后跟一个 http { } 分支。服务器 {} 分支通常保存在 conf.d 目录中,或者通常包含在 nginx.conf 中此 http{} 分支末尾的位置。因此,即使它们以服务器作为外节点开始,它也不是真正外节点。它在 http 节点内。
如果您直接加载配置文件,请确保它包含完整的 nginx 配置,包括这些缺失的部分?
我能够使用以下配置文件解决问题。 看起来不错,列出了许多 Ghost 和 HTTPS 重定向的错误。
server {
listen 443;
ssl on;
server_name mydomain.com www.mydomain.com;
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
location / {
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 Host $http_host;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:2368;
}
}
server {
listen 80;
server_name mydomain.com;
return 301 https://$host$request_uri;
}