搭建Nginx服务器
一、Nginx 提供网站服务 和 代理服务 的开源且跨平台的软件
安装准备:

安装源码Nginx  搭建网站服务器
rpm -q   gcc    gcc-c++   make
yum  -y  groupinstall  "开发工具"
检查80端口使用情况:
netstat -untalp | grep :80  
service  httpd  stop  ;  chkconfig  --level  35  off
添加nginx用户,不需要家目录和用户组:
useradd  -s /sbin/noligin    -M     nginx
yum  -y   openssl-devel(需要openssl支持)
yum  -y  install  pcre-devel(需要pcre支持)

安装过程:

unzip   nginx-package.zip
cd nginx-package
tar -zxvf  nginx-0.8.55.tar.gz
cd nginx-0.8.55
./configure --help#查看安装参数
./configure  --prefix=/usr/local/nginx(安装位置)   --user=nginx   --group=nginx  --with-http_ssl_module   (开启ssl服务,许安装openssl-devel) --with-http_rewrite_module (  默认支持地址重写,可不写,用于修改客户端访问自己的URL路径,http://ip/目录名/文件,用perl+正则表达式匹配用户访问自己的URL路径)
make  
make   install

成功安装后生成的文件目录:
[root@pc205 nginx]# cd /usr/local/nginx/
conf 配置文件 nginx.conf nginx.conf.default
html 网页目录
logs 日志目录 (访问日志 错误日志 xxx.pid)
access.log error.log nginx.pid
sbin 启动服务 命令存放的目录

启动nginx:

[root@pc205 nginx]# /usr/local/nginx/sbin/nginx

查看启动情况:

[root@pc205 nginx]# netstat -utnalp | grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      17128/nginx         
[root@pc205 nginx]# ls logs/
access.log  error.log  nginx.pid
[root@pc205 nginx]# elinks  --dump http://localhost
                               Welcome to nginx!

./nginx 选项:
-s stop 关闭服务
-t 检查默认配置文件 nginx.conf 是否有语法错误
-v 查看软件版本
-V 查看安装时的配置信息 ./configrue
-c xxx.conf 启动nginx时,指定加载的的配置文件,要指定文件的绝对路径,默认加载 nginx.conf

以nginx-2.conf配置文件启动nginx:
[root@pc205 conf]# ../sbin/nginx  -c /usr/local/nginx/conf/nginx-2.conf

通过杀进程或给进程发送信号的方式停止服务
pkill -9 nginx
kill -信号 pid号

信号 :
TERM, INT 快速关闭 ,不理会有没有正在进行的服务,强制关闭

kill   -INT   `cat  /usr/local/nginx/logs/nginx.pid`

QUIT 从容关闭(不接受新服务,等待已连接服务结束后关闭),从容关 闭主进程顺便强制关闭工作子进程
WINCH 从容关闭工作主进程,不会立即关闭子进程
HUP 重载配置,用新的配置开始新的工作进程;从容关闭旧的工作进程,相当于重启操作

kill   -HUP   `cat  /usr/local/nginx/logs/nginx.pid`

USR1 重新打开日志文件 ,升级软件版本时使用
USR2 平滑升级可执行程序,升级软件版本时使用

配置Nginx (vim nginx.conf):

worker_processes 1;#nginx启动时,开启的进程数,一般设置的数量与CPU核心数相同
events{
worker_connections 1024;#并发连接数
      }
#http容器{}作用域外是全局配置
http{#只能有一个http容器
    server  {   #一个server代表一个网站,可以有多个server容器
       listen   ip地址:端口号;#
       server_name   主机名;
       location / {#匹配用户访问的url地址,嵌在server中,/表示根目录,可以有多个location容器
            root  网页目录;
           index  首页文件名;
           }
           error_page 500 /50x.html;
           location = /50x.html{
            root html; }
   }
}

精简配置文件代码,删除空行和注释行:

grep -v '^$' nginx.conf.default   |  grep -v '#'  >  nginx-3.conf

查看nginx启动情况:
ps aux |grep –color nginx

平滑升级nginx (nginx独有的功能,升级服务软件版本时不用停止服务,升级软件跨度不能太大)
执行./configure 时,配置参数要和低版本一致 ,用 ./nginx -v查看低版本安装时的参数。

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

make#编译后objs目录下会生成nginx文件夹,这是高版本nginx启动命令
mv  /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-old#备份旧版本nginx命令
cp objs/nginx  /usr/local/nginx/sbin/#使用新版本的nginx命令取代旧版本nginx命令
make upgrade#升级版本,实际执行命令如下所示:
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`