我遵循此step,但是不知何故,它会引发错误。
默认配置为
http {
upstream alert {
# fail_timeout=0 means we always retry an upstream even if it failed
# to return a good HTTP response
# Unix domain servers
server unix:/tmp/alert_1.sock fail_timeout=0;
server unix:/tmp/alert_2.sock fail_timeout=0;
server unix:/tmp/alert_3.sock fail_timeout=0;
server unix:/tmp/alert_4.sock fail_timeout=0;
# Unix domain sockets are used in this example due to their high performance,
# but TCP/IP sockets could be used instead:
# server 127.0.0.1:8081 fail_timeout=0;
# server 127.0.0.1:8082 fail_timeout=0;
# server 127.0.0.1:8083 fail_timeout=0;
# server 127.0.0.1:8084 fail_timeout=0;
}
server {
listen 80;
client_max_body_size 4G;
server_name myiphere;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://alert;
}
location /static {
# path for static files
root /mylocation/static;
}
}
}
nginx:[emerg] / etc / nginx / sites-enabled / default:1中不允许使用“ http”指令 nginx:配置文件/etc/nginx/nginx.conf测试失败
答案 0 :(得分:2)
我的回复晚了大约9个月,但我也遇到了同样的问题。
我之所以决定添加我的回答,是因为最后两个答案仅暗示了解决方案,并且可能对某些人仍然感到困惑。
一个更简单的答案是:
从上面的配置中删除http声明,因为它很可能已经在您的/etc/nginx/nginx.conf
文件中定义了(您可以检查该文件以验证声明)。
因此,您的配置最终应该看起来像这样:
upstream alert {
# fail_timeout=0 means we always retry an upstream even if it failed
# to return a good HTTP response
# Unix domain servers
server unix:/tmp/alert_1.sock fail_timeout=0;
server unix:/tmp/alert_2.sock fail_timeout=0;
server unix:/tmp/alert_3.sock fail_timeout=0;
server unix:/tmp/alert_4.sock fail_timeout=0;
# Unix domain sockets are used in this example due to their high performance,
# but TCP/IP sockets could be used instead:
# server 127.0.0.1:8081 fail_timeout=0;
# server 127.0.0.1:8082 fail_timeout=0;
# server 127.0.0.1:8083 fail_timeout=0;
# server 127.0.0.1:8084 fail_timeout=0;
}
server {
listen 80;
client_max_body_size 4G;
server_name myiphere;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://alert;
}
location /static {
# path for static files
root /mylocation/static;
}
}
答案 1 :(得分:1)
检查您的/etc/nginx/nginx.conf
。如果要在此处打开http
伪指令,然后再次将其打开到sites-enabled/
文件夹conf文件中,则最终将得到嵌套的http
伪指令。
答案 2 :(得分:0)
我遇到了同样的错误。我不是直接在/ect/nginx/nginx.conf中而是在/ect/nginx/nginx.conf中的http {}中设置了Nginx配置。 因此,您可以删除/ect/nginx/nginx.conf并使用自己的配置代码创建一个新的/ect/nginx/nginx.conf。