gridfs配置时,nginx配置文件抛出错误?

时间:2014-10-08 11:50:28

标签: mongodb nginx gridfs

我已安装nginx-gridfs并遵循https://github.com/mdirolf/nginx-gridfs

Nginx安装成功。

在nginx.conf文件中我指定如下:

server{
  location /gridfs/ {
  gridfs my_app;
  }
}

抛出错误gridfs是未知指令。

Restarting nginx: nginx: [emerg] unknown directive "gridfs" in /etc/nginx/nginx.conf:69
nginx: configuration file /etc/nginx/nginx.conf test failed

任何人建议解决方案。

谢谢, 普拉萨德。

1 个答案:

答案 0 :(得分:0)

从源代码编译nginx然后使用make install安装它时,它安装在/ usr / local / nginx而不是/ etc / nginx中,因此需要在nginx scipt中更改创建的路径和守护进程(你必须手动创建并链接它,因为从源代码编译不会创建它自己的。)

我假设您已经从添加gridfs模块的源代码中安装了nginx。

现在不幸的是,您无法使用/etc/init.d/nginx中的脚本启动或停止nginx服务,因为从源代码安装不会创建脚本(如果在/中找到) etc / init.d /,然后在使用包管理器安装nginx时生成此脚本)

然后检查你的nginx状态。如果它正在运行,请使用:



sudo kill `cat /usr/local/nginx/logs/nginx.pid`




然后继续创建一个脚本:



sudo nano /etc/init.d/nginx




在银行文件中使用此代码段:



#! /bin/sh
 
### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO
 
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin
#DAEMON=/usr/sbin/nginx
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx
 
test -x $DAEMON || exit 0
 
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
    . /etc/default/nginx
fi
 
set -e
 
. /lib/lsb/init-functions
 
case "$1" in
  start)
    echo -n "Starting $DESC: "
    start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
        --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
  stop)
    echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
        --exec $DAEMON || true
    echo "$NAME."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile \
        /usr/local/nginx/logs/$NAME.pid --exec $DAEMON || true
    sleep 1
    start-stop-daemon --start --quiet --pidfile \
        /usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
          --exec $DAEMON || true
      echo "$NAME."
      ;;
  status)
      status_of_proc -p /usr/local/nginx/logs/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
      ;;
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
    exit 1
    ;;
esac
 
exit 0




然后使文件可执行:



sudo chmod +x /etc/init.d/nginx




现在将脚本添加到默认运行级别:



sudo /usr/sbin/update-rc.d -f nginx defaults




那就是它。你完成了!您现在可以使用该脚本来启动,停止和重新启动nginx:



sudo /etc/init.d/nginx start

sudo /etc/init.d/nginx stop

sudo /etc/init.d/nginx restart




如果您需要更多帮助,请点击此链接:1

在页面底部,您将找到手动创建nginx脚本的链接。