安装好虚拟机,没安装的可以参考
本地安装VMware运行Centos6.8并使用XShell管理
然后就要搭建环境啦!以往都是Apache 这次选择了nginx,因为apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程,抗并发妥妥的,而且负载均衡,HTTP代理就不多解释了,可以自行百度。
在这里我安装的软件都在/usr/local/src下,你们随意看各自的喜好
cd /usr/local/src
到 nginx download 下载稳定版(Stable version)。
wget http://nginx.org/download/nginx-1.8.1.tar.gz
解压进入目录
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
执行 configure
./configure
接着安装 PCRE:
yum -y install pcre-devel
再次执行 ./configure 然后安装zlib-devel:
yum -y install zlib-devel
编译,安装。
make && make install
如果安装nginx在执行make && make install时报错:make: XXX No rule to make target build, needed by default. Stop. 出现这种情况,是linux系统没有安装先决条件,一般在执行./configure 会提示你有哪些东西没有安装,仔细看就知道了
GCC——GNU编译器集合(GCC可以使用默认包管理器的仓库(repositories)来安装,包管理器的选择依赖于你使用的Linux发布版本,包管理器有不同的实现:yum是基于Red Hat的发布版本;apt用于Debian和Ubuntu;yast用于SuSE Linux等等。)
RedHat中安装GCC:
Ubuntu中安装GCC:
PCRE库(Nginx编译需要PCRE(Perl Compatible Regular Expression),因为Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码,这正是我们需要的理由。)
RedHat中安装PCRE:
Ubuntu中安装PCRE:
zlib库(zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。如同安装PCRE一样,同样需要安装库和它的源代码:zlib和zlib-devel。)
RedHat中安装zlib:
Ubuntu中安装zlib:
OpenSSL库(在Nginx中,如果服务器提供安全网页时则会用到OpenSSL库,我们需要安装库文件和它的开发安装包(openssl和openssl-devel)。)
RedHat中安装OpenSSL:
Ubuntu中安装OpenSSL:(注:Ubuntu14.04的仓库中没有发现openssl-dev):
安装完后启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
这个时候可以查看nginx是否启动
ps -ef | grep nginx
启动成功后的效果如图:
将nginx做成系统服务制作启动脚本,这样就可以开机自启动了
vi /etc/init.d/nginx
写入内容:
#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add nginx'
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
# Author: licess
# website: http://lnmp.org
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
case "$1" in
start)
echo -n "Starting $NAME... "
if netstat -tnpl | grep -q nginx;then
echo "$NAME (pid `pidof $NAME`) already running."
exit 1
fi
$NGINX_BIN -c $CONFIGFILE
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Stoping $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
$NGINX_BIN -s stop
if [ "$?" != 0 ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
status)
if netstat -tnpl | grep -q nginx; then
PID=`pidof nginx`
echo "$NAME (pid $PID) is running..."
else
echo "$NAME is stopped"
exit 0
fi
;;
force-quit)
echo -n "Terminating $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
kill `pidof $NAME`
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
reload)
echo -n "Reload service $NAME... "
if netstat -tnpl | grep -q nginx; then
$NGINX_BIN -s reload
echo " done"
else
echo "$NAME is not running, can't reload."
exit 1
fi
;;
configtest)
echo -n "Test $NAME configure files... "
$NGINX_BIN -t
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
exit 1
;;
esac
保存退出后,将启动脚本添加到服务管理
chkconfig --add nginx
service nginx start
如果有的人 执行 service nginx start 失败,报错:env: /etc/init.d/nginx: Permission denied
一般是说没有权限导致失败 运行
chmod 750 /etc/init.d/nginx
赋予nginx权限即可,也可以进入到/etc/init.d里,chmod 750 nginx 也行,再执行就不会报错了
还有一个赋予权限的地方, /usr/local/nginx/conf/nginx.conf 文件,第一行将user的注释去掉,打开写为
user root
添加shell别名
vim ./.bashrc
alias nginx="/usr/local/nginx/sbin/nginx"
这个时候,就有人想访问下nginx部署完后的页面,输入虚拟机外网连接后,有的人可能会提示找不到服务器,那么就有可能是服务器防火墙的问题,也可能是你开启了iptables
/etc/init.d/iptables stop
关闭即可,再访问就成功啦!
推荐nginx文档以供参考!!!
此处评论已关闭