nginx 代理配置错误(配置语法)

nginx 代理配置错误(配置语法)

嘻嘻,

下面是配置 + 它抛出的错误,我无论如何也想不出哪里出了问题。尝试了各种方法让它工作,但都无济于事 :(

server  {
    listen  127.0.0.1:100;

    access_log      /var/log/nginx/main.proxied.log;

    location        ^~/(error_pages|javascript|stylesheets|help|images|xml|graphs|static|media) {
    root    /usr/local/nagios/share;

    location ~* \.(js|css|rdf|xml|ico|txt|gif|jpg|png|jpeg)$ {
    root    /usr/local/nagios/share/;
}

location / {

    proxy_pass      http://127.0.0.1:80/;
    proxy_redirect  off;

    proxy_set_header        Host    $host;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

    client_max_body_size    10m;

以及错误;

Restarting nginx: [warn]: duplicate MIME type "text/html" in /etc/nginx/nginx.conf:29
[emerg]: location "/" is outside location "/(error_pages|javascript|stylesheets|help|images|xml|graphs|static|media)" in /etc/nginx/sites-enabled/main.conf:13
configuration file /etc/nginx/nginx.conf test failed

答案1

您的花括号不匹配。

以下行:

location        ^~/(error_pages|javascript|stylesheets|help|images|xml|graphs|static|media) {

在其末尾有一个左花括号,但是在下一个位置行之前没有右花括号。

@memoryleak 所写的也是正确的,如果你关闭这两个位置块,现有的右花括号将关闭该server块,这意味着最后location现在处于错误的上下文中。

最后一个location块也没有结束的花括号。

答案2

在你的配置文件中地点在……之外服务器指令,但上下文地点在里面服务器http://wiki.nginx.org/HttpCoreModule#location

相关内容