nginx简介:
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
安装环境:
系统: centos 7.0 最小化安装
软件:nginx
依赖包:pcre、openssl、zlib
准备工作:
- 关闭firewall:
[[email protected] ~]# systemctl stop firewalld.service #停止firewall[[email protected] ~]# systemctl disable firewalld.service #禁止firewall开机启动
- 安装iptables防火墙
[[email protected] ~]# yum install iptables-services #安装
[[email protected] ~]# vi /etc/sysconfig/iptables #编辑防火墙配置文件
添加代码如下:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT#允许http协议80 端口通过
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT#允许mysql 3306端口通过
:wq! #保存退出
[[email protected] ~]systemctl restart iptables.service #最后重启防火墙使配置生效
[[email protected] ~]systemctl enable iptables.service #设置防火墙开机启动
- 关闭selinux
[[email protected] ~] vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加改行内容
:wq! #保存退出
[[email protected] ~]#setenforce 0 #使配置立即生效
- 源码安装包及依赖包上传到目录 /usr/local/src
nginx 源码包
mysql 源码包 mysql-5.6.19
php 源码包 php-5.5.1
安装nginx
- yum安装依赖包perl、gcc 、gcc-c++
[[email protected] ~]yum install -y perl gcc gcc-c++
- 安装依赖包pcre
[[email protected] ~]#cd /usr/local/src
[[email protected] ~]#mkdir /usr/local/pcre
[[email protected] ~]#tar zxvf
pcre-8.35.tar.gz[[email protected] ~]#cd pcre-8.35
[[email protected]pcre-8.35 ~]#./configure
--prefix=/usr/local/pcre #编译[[email protected] ~]#make && make install #安装
- 安装依赖包openssl
[[email protected] ~]#cd /usr/local/src
[[email protected] ~]#mkdir
/usr/local/openssl[[email protected] ~]#tar zxvf
openssl-1.0.1h.tar.gz[[email protected] ~]#cd openssl-1.0.1h
[[email protected]openssl-1.0.1h ~]#./config
--prefix=/usr/local/openssl #编译[[email protected] ~]#make && make install #安装
[[email protected] ~]#echo ‘export PATH=$PATH:/usr/local/openssl/bin‘
>>/etc/profile #把openssl服务加入系统环境变量:在最后添加下面这一行export PATH=$PATH:/usr/local/openssl/bin:wq! #保存退出
[[email protected] ~]#source /etc/profile
- 安装依赖包zlib
[[email protected] ~]cd /usr/local/src
[[email protected] ~]mkdir /usr/local/zlib
[[email protected] ~]tar zxvf
zlib-1.2.8.tar.gz[[email protected] ~]cd zlib-1.2.8
[[email protected]zlib-1.2.8 ~]./configure
--prefix=/usr/local/zlib[[email protected]zlib-1.2.8 ~]make && make install
- 安装Nginx
[[email protected] ~]groupadd www #添加www组
[[email protected] ~]useradd -g www www -s
/bin/false #添加www用户,属于www组,且禁止该用户登陆系统[[email protected] ~]cd /usr/local/src
[[email protected] ~]tar zxvf
nginx-1.6.0.tar.gz[[email protected] ~]cd nginx-1.6.0
[[email protected]nginx-1.6.0 ~] ./configure --prefix=/usr/local/nginx
--without-http_memcached_module --user=www --group=www
--with-http_stub_status_module --with-http_ssl_module
--with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h
--with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.39 #编译[[email protected] ~] make && make install #安装
[[email protected] ~] /usr/local/nginx/sbin/nginx #启动nginx
- 编辑nginx启动脚本,
[[email protected] ~] vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容
############################################################
#!/bin/sh
#
# nginx - this script
starts and stops the nginx daemon#
# chkconfig: - 85 15
# description: Nginx is
an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3
proxy server# processname: nginx
# config:
/etc/nginx/nginx.conf# config:
/usr/local/nginx/conf/nginx.conf# pidfile:
/usr/local/nginx/logs/nginx.pid# Source function
library..
/etc/rc.d/init.d/functions# Source networking
configuration.. /etc/sysconfig/network
# Check that networking
is up.[
"$NETWORKING" = "no" ] && exit 0nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f
/etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginx
make_dirs() {
# make required
directoriesuser=`$nginx -V
2>&1 | grep "configure arguments:" | sed ‘s/[^*]*--user=\([^
]*\).*/\1/g‘ -`if [ -z "`grep
$user /etc/passwd`" ]; thenuseradd -M -s
/bin/nologin $userfi
options=`$nginx -V
2>&1 | grep ‘configure arguments:‘`for opt in $options; do
if [ `echo $opt | grep
‘.*-temp-path‘` ]; thenvalue=`echo $opt | cut
-d "=" -f 2`if [ ! -d
"$value" ]; then# echo
"creating" $valuemkdir -p $value
&& chown -R $user $valuefi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ]
|| exit 6make_dirs
echo -n $"Starting
$prog: "daemon $nginx -c
$NGINX_CONF_FILEretval=$?
echo
[ $retval -eq 0 ]
&& touch $lockfilereturn $retval
}
stop() {
echo -n $"Stopping
$prog: "killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ]
&& rm -f $lockfilereturn $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading
$prog: "killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c
$NGINX_CONF_FILE}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null
2>&1}
case "$1" in
start)
rh_status_q &&
exit 0$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0
{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2
esac
############################################################
:wq! #保存退出
[[email protected] ~]chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
[[email protected] ~]chkconfig nginx on #设置开机启动
[[email protected] ~]service nginx
restart #重启 - 在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。
至此 ,Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx 完成。