【问题标题】:nginx error:"location" directive is not allowed here in /etc/nginx/nginx.conf:76nginx 错误:/etc/nginx/nginx.conf:76 中不允许使用“位置”指令
【发布时间】:2013-12-21 23:09:47
【问题描述】:

当我用 sudo service nginx restart 重启 nginx 时,

我正面临这个错误,

重启 nginx: nginx: [emerg] "location" 指令在 /etc/nginx/nginx.conf:76 中是不允许的 nginx:配置文件 /etc/nginx/nginx.conf 测试失败

这是我的 nginx.conf 文件:

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {


    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # nginx-naxsi config
    ##
    # Uncomment it if you installed nginx-naxsi
    ##

    #include /etc/nginx/naxsi_core.rules;

    ##
    # nginx-passenger config
    ##
    # Uncomment it if you installed nginx-passenger
    ##

    #passenger_root /usr;
    #passenger_ruby /usr/bin/ruby;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;


        location / {
        /home/techcee/scrapbook/local/lib/python2.7/site-packages/django/__init__.pyc/
       }
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# `enter code here`
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

这有什么问题?

【问题讨论】:

    标签: nginx


    【解决方案1】:

    “位置”指令应该在“服务器”指令中,例如

    server {
        listen       8765;
    
        location / {
            resolver 8.8.8.8;
            proxy_pass http://$http_host$uri$is_args$args;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    

    【讨论】:

      【解决方案2】:

      server 指令必须在 http 指令 中。它不应该在它之外。

      如果您需要详细信息,请参考this

      【讨论】:

      • 问题是关于“位置”指令的。
      【解决方案3】:

      由于您的服务器已经包含sites-enabled 文件夹(注意include /etc/nginx/sites-enabled/*),那么您最好使用它。

      1. /etc/nginx/sites-available 中创建一个文件,然后随意调用它,我将其命名为django,因为它是一个 djanog 服务器

        sudo touch /etc/nginx/sites-available/django
        
      2. 然后创建一个指向它的符号链接

        sudo ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled
        
      3. 然后使用您使用的任何文件编辑器编辑该文件,vimnano 或其他任何东西,并在其中创建服务器

        server {
            # hostname or ip or multiple separated by spaces
            server_name localhost example.com 192.168.1.1; #change to your setting
            location / {
                root /home/techcee/scrapbook/local/lib/python2.7/site-packages/django/__init__.pyc/;
            }
        }
        
      4. 重启或重新加载 nginx 设置

        sudo service nginx reload
        

      注意我相信你这样的配置可能还行不通,因为你需要将它传递给 fastcgi 服务器或其他东西,但至少这是你可以创建一个 有效服务器

      【讨论】:

      • 好的,我刚刚读到了 gunicorn,你是在 gunicorn 中使用端口号还是 sockfile?
      • 我正在使用端口号
      【解决方案4】:

      location 指令应该在 server 指令中,而 server 指令又应该在 http 指令中。请参阅下面的反向代理示例:

      http {
          server {
              location /some-path {
                  proxy_pass             http://1.2.3.4;
              }
          }
      }
      

      以上内容改编自Wiki example。网站上有更多示例和文档。

      顺便提一下include指令的效果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-09
        • 1970-01-01
        • 1970-01-01
        • 2017-11-10
        • 1970-01-01
        • 2021-02-25
        • 1970-01-01
        • 2021-08-30
        相关资源
        最近更新 更多