nginx:[emerg]“服务器"指令在这里是不允许的 [英] nginx: [emerg] "server" directive is not allowed here
问题描述
我已经重新配置了nginx,但是我无法使用以下配置重新启动它:
I have reconfigured nginx but i can't get it to restart using the following config:
conf:
server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location /robots.txt {
alias /path/to/robots.txt;
access_log off;
log_not_found off;
}
location = /favicon.ico { access_log off; log_not_found off; }
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_read_timeout 30;
proxy_pass http://127.0.0.1:8000;
}
location /static {
expires 1M;
alias /path/to/staticfiles;
}
}
运行sudo nginx -c conf -t
测试配置后,返回以下错误,我无法确定真正的问题是什么
after running sudo nginx -c conf -t
to test the configuration the following error is returned i can't figure out what is really the problem
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-available/config:1
nginx: configuration file /etc/nginx/sites-available/config test failed
推荐答案
这不是nginx
配置文件.它是nginx
配置文件的 part .
That is not an nginx
configuration file. It is part of an nginx
configuration file.
nginx
配置文件(通常称为nginx.conf
)如下所示:
The nginx
configuration file (usually called nginx.conf
) will look like:
events {
...
}
http {
...
server {
...
}
}
server
块包含在http
块内.
通常,通过使用include
指令提取其他片段(例如,从sites-enabled
目录中),配置会分布在多个文件中.
Often the configuration is distributed across multiple files, by using the include
directives to pull in additional fragments (for example from the sites-enabled
directory).
使用sudo nginx -t
测试完整的配置文件,该文件从nginx.conf
开始,并使用include
指令提取其他片段.有关更多信息,请参见此文档.
Use sudo nginx -t
to test the complete configuration file, which starts at nginx.conf
and pulls in additional fragments using the include
directive. See this document for more.
这篇关于nginx:[emerg]“服务器"指令在这里是不允许的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!