1.Nginx的简单说明
a. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,期初开发的目的就是为了代理电子邮件服务器室友:Igor Sysoev开发,源代码符合BSD开源。其特点就是占用内存少并发能力强,在天朝使用Nginx的大型网站已经有很多:百度、淘宝、腾讯等等...。
b.Nginx作为Http服务器,有以下几项基本特征:
b.1 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。
b.2 无缓存的反向代理加速,简单的负载均衡和容错
b.3 模块化的结构,包括gzipping,byte ranges,chunked responses以及SSI-filter等filter,如果由FastCGI或其它代理服务器处理蛋液中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。
b.4 支持SSL和TLSSNI。
c.Nginx官网:http://nginx.org/
d.Nginx推荐学习网址:http://dreamfire.blog.51cto.com/418026/1140965
2.安装
编译环境gcc g++ 开发库之类的需要提前装好
安装make:
安装g++:
1
|
yum
install
gcc
gcc
-
c
++
|
下面正式开始
---------------------------------------------------------------------------
一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。
1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src
2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:
3.安装zlib库
http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:
4.安装ssl(某些vps默认没装ssl)
5.安装pcre-devel,以及建立nginx用户
- yum -y install openssl openssl-devel
7.安装nginx
Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:
3.监测Nginx是否安装成功
a.当上面的所有步骤完成之后,则说明Nginx安装已经完成,那么我们如何来确定是否安装成功了呢?通过以下命令来确定即可。
a.1 cd /usr/local/nginx/sbin/
a.2 ./nginx -t
b. 当我执行第二个命令(./nginx -t)的时候出错了,报没有权限的错误。如图所示:
备注:根据错误提示,我们就能够看出来,是说/usr/local/nginx下没有权限,解决办法也很简单,我们给文件赋值权限。
如运行出现:
[root@vagrant-centos65 sbin]# ./nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
出现这个错误只需root下手动创建目录即可。
如图所示
c.如下图所示,配置权限(配置权限需要切换到root用户下)之后,执行上面两个步骤,如果linux中如下图所示:则说明安装已成功。
d.当确认安装完成之后,首先就需要启动和查看Nginx默认安装的端口是多少,两个命令分别如下:
(1) ./nginx
(2) netstat -ntlp , Nginx默认端口为80
e.防火墙开放80端口,让其外部环境可以访问(如果不开放80端口,外部环境访问不了),
f.当上面的工作完成之后,我们在外部浏览器中浏览:http://IP,出现如图所示,则说明安装已完全完成。
4.将Nginx设置为开机自动启动
首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:
vim /etc/init.d/nginx
在脚本中添加如下命令:
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
#注意
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/src/nginx-1.9.9/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
保存脚本文件后 设置文件的执行权限 :
chmod a+x /etc/init.d/nginx
然后,就可以通过该脚本对nginx服务进行管理了:
/etc/init.d/nginx start /etc/init.d/nginx stop
使用chkconfig进行管理
上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。这时可以使用chkconfig来设置。
先将nginx服务加入chkconfig管理列表:
chkconfig --add /etc/init.d/nginx
加完这个之后,就可以使用service对nginx进行启动,重启等操作了。
service nginx start service nginx stop
设置终端模式开机启动:
chkconfig nginx on
chkconfig命令的使用方法,就不多数啦,可以自行搜索
5.使用server命令启动nginx服务
a. 现在觉得启动命令太麻烦,虽然开机可以自启动,但是每次改动要重新启动nginx的话,要么输入命令,要么开机,都还不是很好,那么我们能不能创造一个更好的方式呢?当然可以,我们可以通过设置System V脚本。
b.脚本代码如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
c.创建命令如下,手先跳转到/etc/init.d下创建nginx启动脚本文件,命令如下;
c.1 cd /etc/init.d/
c.2 vim nginx 创建一个新的nginx文件,将上面的命令代码copy到里面,然后保存
d.修改脚本权限,命令如下:chmod 755 nginx
e.将脚本文件加入到chkconfig中 chkconfig --add nginx
f.设置nginx开机在3和5级别自动启动 chkconfig --level 35 nginx on
g.测试nginx脚本文件是否能够正常使用,命令如下,我均已测试,全部可以使用。
g.1 /etc/init.d/nginx restart
g.2 /etc/init.d/nginx reload
g.3 /etc/init.d/nginx stop