nginx 学习整理


今天在新浪微博上看到一篇文章《agentzh 的 Nginx 教程》, 本抱着看看还有什么不知道的态度,可是遇到了问题......

记得第一次用nginx的时候,也是我写的第一个有人用的网站,之前的网站都类似练手,基本上都没有考虑过服务器之类的东西,用的是apache。LAMP的模式,安装好后就直接用了,最多配置一下网站的根目录。现在问题来了,要求用nginx+fastcgi来运行php编写的网站,因为网站急着上线,所以花了一个下午了解nginx的配置,实现一个简单的url rewrite。总之在半夜才使网站run起来。

不过第二天网站出了点问题,等等一堆的问题,比如(sql注入,前台验证...)

用了快1年PHP后,我就放下PHP尝试着学习python和ruby,最终决定学习ruby,可能ruby的命名空间和PHP的挺像吧...学习ruby之后一直用的sinatra + thin,很少接触nginx。最近在和别人做一个类似论坛项目的时候, 我想在用discuz + nginx + fastcgi,nginx问题突然什么都出来了,就想起一句话:“欠的东西迟早是要还的”。

首先是nginx的error.log中一直是:“permission denied while connecting to upstream”, 浏览器一直显示“file no found”, 好像权限有问题,查看了 ps -aux | grep nginx 和 ps -aux | grep php-fpm 和网站根目录下文件权限 由于用户的权限不一样所以出了问题。改变了nginx 用户组, php-fpm用户组 就没有问题了。

为了加深自己堆nginx的学习, 所以找了些书本,仔细研究一下, 了解了fast-cgi的工作原理,为什么普通的cgi处理网络请求慢一点,fast-cgi的好处。

今天在新浪微博上看到《agentzh 的 Nginx 教程》,可是第一个例子

server {
        listen 8080;

        location /test {
            set $foo hello;
            echo "foo: $foo";
        }
    }

nginx就出了问题, 没有echo函数, 然后按照官方教程安装HttpEchoModule,安装链接

 $ wget 'http://nginx.org/download/nginx-1.4.2.tar.gz'
    $ tar -xzvf nginx-1.4.2.tar.gz
    $ cd nginx-1.4.2/
 
    # Here we assume you would install you nginx under /opt/nginx/.
    $ ./configure --prefix=/opt/nginx \
        --add-module=/path/to/echo-nginx-module
 
    $ make -j2
    $ make install
新的问题在执行到命令:./configure --prefix=nginx安装路径 --add-module=/path/to/echo-nginx-module 

error:/path/to/echo-nginx-module/config is not found.

google了很久感觉我自己要编写config文件,还要编写echo-nginx-module.c文件,感觉及其复杂。然后感觉好像自己应该少装了点东西。

google后在https://github.com/agentzh/echo-nginx-module 上clone下源码,将--add-module=下载的echo-nginx-module文件路径,然后安装成功


今天写下这篇日记,整理一下自己,还有很多要学,一点一点来,都大三了,加油呢,明年就要找工作了,加油嗯。

你可能感兴趣的:(服务器,php,nginx)