环境:centos-6.4-x86-64
软件:nginx-1.4.4.tarlibevent-2.0.16-stable.tar
Nginx("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Nginx的优点:
在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应。
接下来介绍nginx的安装
nginx安装前要先安装pcre和libevent,在linux内核版本2.6以上都已经集成了pcre,我们这里用的正是2.6以上的版本所以不需要安装pcr。那就先安装libevent。解压libevent到/usr/local/sec,执行./configure--prefix=/usr/local/libevent。完成后执行make && make install
然后切换到/usr/local/libevent目录下看到有一个lib文件夹,这里面包含了静态库和动态库,我们需要输出到系统当中去,编辑/etc/ld.so.conf.d/libevent.conf
然后使用ldconfig更新缓存。接着安装nginx,解压nginx到/usr/local/src切换到解压后的目录中执行./configure \
--conf-path=/etc/nginx/nginx.conf\
--error-log-path=/var/log/nginx/error.log\
--http-log-path=/var/log/nginx/access.log\
--pid-path=/var/run/nginx/nginx.pid\
--lock-path=/var/lock/nginx.lock\
--user=nginx\
--group=nginx\
--with-http_ssl_module\
--with-http_flv_module\
--with-http_stub_status_module\
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/\
--http-proxy-temp-path=/var/tmp/nginx/proxy/\
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\
--with-pcre
完成之后执行make&& make install 。让后创建nginx组和nginx帐号
groupadd -r nginx
useradd -r -g nginx -s /bin/nologin -M nginx
编写nginx控制脚本/etc/init.d/nginx
#!/bin/bash
[ -e /etc/init.d/functions ] && ./etc/init.d/functions
prog=/usr/local/nginx/sbin/nginx
lockfile=/var/lock/nginx.lock
start(){
if [ -e $lockfile ];then
echo "nginx server is started"
else echo -n "nginx serveris starting... "
sleep 1
$prog &>/dev/null && echo "[ ok]" && touch $lockfile ||echo "[ failer ]"
fi
}
stop(){
if [ ! -e $lockfile ];then
echo "nginx server is stoped"
else echo -n "nginx server is stoping... "
sleep 1
$prog -s stop && echo "[ ok ]" && rm -rf$lockfile ||echo "[ failer ]"
fi
}
reload(){
if [ -e $lockfile ];then
$prog -s reload &>/dev/null && echo "[ ok ]" ||echo "[ failer ]"
else $prog &>/dev/null && touch $lockfile
fi
}
configuration() {
$prog -t
}
case $1 in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
configuration)
configuration
;;
*)
echo "USAGE:start|stop|reload|configuration"
;;
Esac
启动nginx测试能否访问
可以访问。接下来做站点安全,先介绍身份验证,编辑/etc/nginx/nginx.conf
在要控制的站点内图上的那两句话。然后使用htpasswd创建htpasswd。要使用htpasswd要安装httpd-tools。完成之后重新加载nginx
访问出现让输入用户名和密码,说明已经做成。
接着介绍来源控制,来源控制也是在需要控制的站点目录下设置允许和拒绝
具体做法如下图
先用192.168.29.1来进行访问
被拒绝掉了。再用192.168.29.132访问
可以访问。
接着介绍https的实现。要实现https就要用到数字证书,数字证书要有颁发机构CA,我们就在本机上安装openssl来实现CA
首先安装openssl,接着编辑/etc/pki/tls/openssl.conf,主要修改一些默认值
修改匹配的规则,不然将无法给网站签发证书
就先修改这么多
然后创建index.txt和serial,并且给serial一个初值
CA也要自己的公钥,私钥和证书
使用openssl genrsa 1024 >private/cakey.pem 产生CA私钥
由于要保证私钥的安全性所以要修改权限
使用openssl req-new -key private/cakey.pem -x509 -out cacert.pem 产生证书
接下来就要配置网站的私钥请求文件和利用CA签发证书
切换到/etc/nginx目录下创建一个文件夹存放文件使用命令 mkdir certs,然后切换到该目录中
产生私钥:openssl genrsa 1024 >nginx.key 然后修改权限为600
产生请求文件:opensslreq -new -key nginx.key -out nginx.crq
然后签发证书:
openssl ca -in nginx.key -out nginx.cert
修改nginx的配置文件如下图
重新加载nginx的配置文件,然后通过https访问www.abc.com
到这里就nginx的站点安全就介绍完了。