搭建nginx网站服务及应用


实验环境:

服务器系统:Redhat 6.2             ip地址:192.168.10.1

客户机系统:Win7 64位 旗舰版   ip地址:192.168.10.2

系统环境:已搭建LAMP平台


1、搭建nginx服务并实现访问状态统计

[root@localhost ~]#yum -y install pcre-devel zlib-devel  #首先需要安装这两个工具


[root@localhost ~]#useradd -M -s /sbin/nologin nginx  #在系统中新建一个用户nginx不建立家目录,禁止登陆系统,作为nginx服务的专用账号


[root@localhost ~]# mount.cifs //192.168.10.2/LAMP /opt  #从客户机上将共享的文件夹LAMP挂载到/opt目录下,nginx安装压缩包在这个文件夹中


[root@localhost ~]#tar xzvf /opt/nginx-1.5.10.tar.gz  #解压nginx到/root目录(解压到哪里看个人需求)



[root@localhost ~]#cd nginx-1.5.10/   

[root@localhost nginx-1.5.10]# ./configure \     #到nginx解压的源码目录进行./configure配置

--prefix=/usr/local/nginx \      #指定安装路径

--user=nginx \        #指定服务的使用者

--group=nginx \     #指定服务的使用组

--with-http_stub_status_module    #启用状态统计模块


[root@localhost nginx-1.5.10]#make

[root@localhost nginx-1.5.10]#make install


[root@localhost nginx-1.5.10]#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/   #为程序创建软连接,以便使用nginx就可以直接调用nginx,不要输绝对路径来执行了


nginx -t   #进行配置检查

nginx           #启动服务

killall -1 nginx   #重启服务

killall -3 nginx   #停止服务


-------------------------------------------------------------------------------------

一般我们在linux系统中基本上都习惯于用service命令来控制服务的启动与停止等,这里提供一个其他网站看到的别人写的控制脚本,把以下内容添加到vim /etc/init.d/nginx里面保存即可实现

#!/bin/bash  

#  

# nginx      This shell script takes care of starting and stopping  

#            standalone nginx.  

  

# config: /usr/local/nginx/conf/nginx.conf  

  

# Source function library.  

  

. /etc/rc.d/init.d/functions  

  

 RETVAL=0  

 prog="nginx"  

  

start() {  

      #start nginx  

      [ -x /usr/local/nginx/sbin/nginx ] || exit 4  

      [ -z /usr/local/nginx/conf/nginx.conf ] && exit 6  

      echo -n $"Starting $prog: "  

      daemon /usr/local/nginx/sbin/nginx 2>/dev/null  

      RETVAL=$?  

      echo  

      return $RETVAL       

}  

  

stop () {  

     #stop nginx  

     echo -n $"Shutting down $prog: "  

     daemon /usr/local/nginx/sbin/nginx -s stop 2>/dev/null  

     RETVAL=$?  

     echo  

     return $RETVAL  

}  

  

reload () {  

     #reload  nginx  

     echo -n $"Reload the config of $prog: "  

     daemon /usr/local/nginx/sbin/nginx -s reload 2>/dev/null  

     RETVAL=$?  

     echo  

     return $RETVAL  

}  

  

  

  

# See how we were called.  

case "$1" in  

  start)  

        start  

        ;;  

  stop)  

        stop  

        ;;  

  restart)  

        stop  

        start  

        RETVAL=$?  

        ;;  

  reload)  

        reload  

        ;;  

  status)  

        status $prog  

        RETVAL=$?  

        ;;  

  *)  

        echo $"Usage: $0 {start|stop|restart|reload|status}"  

        exit 2  

esac  

  

exit $RETVAL  

------------------------------------------------------------------------------


cd /usr/local/nginx/conf  

mv nginx.conf nginx.conf.back  #将原来的配置文件做个备份以防配置出错可以导回

grep -v "#" nginx.conf.back | grep -v "^$" > nginx.conf  #过滤掉配置文件中的带有#号的行和空行(可根据个人习惯)


[root@ling conf]# vi nginx.conf   #打开配置文件插入红色字的四行内容,注意{}需成对


server {

        listen       80;

        server_name  localhost;

charset utf-8;


        location / {

            root   html;

            index  index.html index.htm;

        }


        location ~ /status {    #访问位置为ip地址/status

        stub_status   on;       #打开状态统计功能

        access_log off;         #关闭此位置的日志记录

        }


        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }


       }

    }

在客户机上验证,在浏览器中输入192.168.10.1,看到以下画面的话nginx已经搭建成功

验证状态统计功能,在浏览器中输入192.168.10.1/status,将看到如下页面

2、配置基于域名的虚拟主机

在web服务器当中运用比较广泛的功能还有虚拟主机,nginx当中也是可以配置的,在配置文件中插入以下这两个server块即可。

[root@localhost ~]#vi nginx.conf

server {

        server_name  www.benet.com;      #输入域名

        location / {

            root   /var/www/benet;          #指定这个网站的网页根目录

            index  index.html index.php;   #指定默认打开的网页

        }

    }

    server {

       server_name  www.accp.com;

        location / {

            root   /var/www/accp;

            index  index.html index.php;

        }

    }


[root@localhost ~]# mkdir /var/www/benet     #创建网站根目录

[root@localhost ~]# mkdir /var/www/accp

[root@localhost ~]# echo "this is benet" > /var/www/benet/index.html  #制作一个html的网页,内容为this is benet

[root@localhost ~]# echo "this is accp" > /var/www/accp/index.html


[root@localhost ~]# service nginx restart    #重启服务

关闭 nginx:                                               [确定]

正在启动 nginx:                                         [确定]


在验证之前我们配置了两个域名就必须要解析这两个域名,需要搭建DNS,这里为了方便,我们可以在客户机上修改hosts文件,将域名和ip地址对应的写进去保存

注意:用记事本打开hosts文件并修改,如果无法修改可以将hosts拖到桌面修改,之后再拖回原来的文件夹即可。


在客户机上验证,分别打开www.benet.com和www.accp.com可以看到以下网页


3、配置nginx支持php网页

因为之前已经搭建过LAMP平台,只需要重新配置php即可,如果之前没有安装过php,需要安装以下gd库和gd库关联程序

[root@localhost ~]# yum -y install \

libjpeg-devel \

libpng-devel \

freetype-devel \

zlib-devel \

gettext-devel \

libXpm-devel \

libxml2-devel \

fontconfig-devel \

openssl-devel \

bzip2-devel


这里我们用源码编译php-5.4.5,找到php源码解压的那个目录进行./configure配置

[root@localhost ~]# umount /opt   #之前我们把php解压到/opt目录下了,后来/opt又被用来挂载所以要先卸载才能看到之前的内容


[root@localhost php-5.4.5]#./configure \     #进行功能配置

--prefix=/usr/local/php5 \

--with-gd \

--with-mysql=/usr/local/mysql \

--with-config-file-path=/etc \

--with-zlib-dir \

--with-libxml-dir \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-iconv \

--with-openssl \

--with-gettext \

--enable-mbstring \

--enable-gd-native-ttf \

--enable-gd-jis-conv \

--enable-static \

--enable-inline-optimization \

--enable-sockets \

--enable-soap \

--enable-ftp \

--disable-ipv6 \

--enable-fpm   #这个模块就是实现让nginx支持php的


[root@localhost php-5.4.5]#make && make install

注意:因为之前装过php,所以make很可能会报错,可以使用make clean再重新make



[root@localhost php-5.4.5]#cp php.ini-development /etc/php.ini  #第一次装php的话需要这一步,这里我们不需要

[root@localhost php-5.4.5]#ln -s /usr/local/php5/bin/* /usr/local/bin/  #建立连接直接调用命令

[root@localhost php-5.4.5]#ln -s /usr/local/php5/sbin/* /usr/local/sbin/


tar xzvf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz   #为了提高php解析效率,安装对应加速器

cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x

cp ZendGuardLoader.so /usr/local/php5/lib/php


[root@localhost ~]#vim /etc/php.ini  #在ini配置文件末尾加入以下三行内容使php能识别加速器

[Zend Guard Loader]

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1


[root@localhost ~]#cd /usr/local/php5/etc/

[root@localhost etc]#cp  php-fpm.conf.default php-fpm.conf

[root@localhost etc]#vim php-fpm.conf   #配置php-fpm,让nginx开启php支持,找到以下几行做相应修改

pid = run/php-fpm.pid

user = nginx

group = nginx

pm.max_children=50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35


[root@localhost etc]#/usr/local/sbin/php-fpm   #执行这个文件


netstat -tnapl | grep 9000   #fpm进程默认端口是9000,查看是否开启


--------以下是让nginx支持PHP功能--------

[root@localhost ~]#vim /usr/local/nginx/conf/nginx.conf


location ~ \.php$ {            #配置文件中加入一个location块

            root           /var/www/benet;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            include        fastcgi.conf;

        }



[root@localhost ~]#vim /var/www/benet/index.php  #在网页根目录下新建一个php网页作为测试,输入以下三行内容

<?php

phpinfo();

?>


在客户机上的浏览器中输入http://192.168.5.2/index.php,出现以下页面则实验成功!


本文出自 “挨踢女的网络成长之路” 博客,请务必保留此出处http://shengjie.blog.51cto.com/8734352/1590198

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。