搭建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`