nginx c模块hello world不起作用

时间:2017-04-19 09:57:04

标签: c nginx module

我只需下载nginx。然后我转到nginx目录并逐个执行三个命令,如下所示:

./configure
make
make install

然后我可以访问http://localhost,一切都很顺利。

现在我试图添加一个c模块。这是hello world example

我所做的是从Github下载示例并编辑nginx(/pathOfNginx/conf/nginx.conf)的配置文件,如下所示:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        ############ this is what I add
        location /test {
            hello_world;
        }
        ############ done
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

之后,我会./configure --add-module=/path/to/nginx-hello-world-modulemake。一切看起来都很好。
然后我重新加载服务器:nginx -s reload

但是,我无法得到正确的答复。这意味着当我执行curl -i http://localhost/test时,我得到的是404 Not Found,而不是hello world string。

1 个答案:

答案 0 :(得分:0)

对我有用!

提供包含hello world\0 ...

的文件

请记住,第二次运行./configure时,您需要再次提供所有选项(它正在替换配置,而不是更新它)。

此外,您需要使用make install来执行此操作,否则将不会更新已安装的二进制文件。

# get everything
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -xvf nginx-1.12.0.tar.gz
git clone https://github.com/perusio/nginx-hello-world-module

# configure
(
  cd nginx-1.12.0
  ./configure --prefix=../nginx --add-module=../nginx-hello-world-module/
)

# build & install
make -C ./nginx-1.12.0 -j8
make -C ./nginx-1.12.0 install

# update config
cat <<EOF >./nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        ############ this is what I add
        location /test {
            hello_world;
        }
        ############ done
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
EOF

# run
(
    cd nginx
    ./sbin/nginx
)

# test
curl http://localhost:80/test