Nginx做为web服务器的安装配置html
(关注官方网站http://nginx.org/)nginx
Nginx简介web
是一个高性能的 HTTP 和 反向代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特性是:1.模块化设计,较好的扩展性(不支持动态装卸载机制) ;2.较好的高可靠性3.低内存消耗(一个线程响应多个请求) 4.支持热部署(不停机二更新配置文件、日志文件的滚动、也包括升级程序版本) 5.支持时间驱动机制、异步IO(AIO)、内存映射机制(mmap)。vim
Nginx具备独特的工做模式,它基于非阻塞、事件驱动机制由一个master进程生成多个worker线程,每一个worker响应n个请求,基于这种模式,nginx的并发能力在国内外享有很高的评价,特别是响应静态资源的能力尤为突出,是一款强大的HTTP和反向代理服务器。浏览器
实验准备:bash
yum源:epel源服务器
源码包:nginx-1.6.2.tar.gz 并发
本机IP:192.168.3.136异步
实验步骤:ide
1、nginx的编译安装
安装开发环境和pcre-devel包,以及添加nginx组和nginx用户
#yum groupinstall "Development Tools""Server Platform Development" –y # yum install pcre-devel –y # groupadd -r nginx # useradd -r -g nginx nginx
1. 解压nginx安装包至本地目录,而后执行编译、安装
# tar -xf nginx-1.6.2.tar.gz #cd nginx-1.6.2 #./configure --prefix=/usr/local/nginx--conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx--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--with-http_ssl_module --with-http_stub_status_module--with-http_gzip_static_module --with-http_flv_module --with-http_mp4_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/fastcgi--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi #make && make install #mkdir -pv/var/tmp/nginx/{client,proxy,fastcgi,uwsgi}
2. 启动nginx,并确保80端口已经监听
# ss -tnl | grep 80 保证80端口此时没被监听 # /usr/local/nginx/sbin/nginx #ss -tnl | grep 80 LISTEN 0 128 *:80 *:*
到此nginx的编译安装就已经成功完成了,在浏览器中输入:192.168.3.136,进行测试访问,就出现nginx的的欢迎页面。
2、基于端口的虚拟主机的配置
1. 在上面的基础上,编辑配置文件,添加虚拟主机sever{}
#vim /etc/nginx/nginx.conf ……在最http{}里面添加以下内容…. server{ #定义一个虚拟主机 listen 8080; #指明监听的端口为8080 server_name www.vega.ict; #指明服务器的名字 root "/vhosts/web1/"; #指明主页面文档的根目录 }
2. 建立虚拟主机页面目录,并准备主页面文件
# mkdir /vhosts/web1 –pv # cd /vhosts/web1/ # vim index.html …..添加以下内容….. <h1>page web1(nginx)</h1>
3.从新载入配置文件
# /usr/local/nginx/sbin/nginx -s reload
到此咱们基于端口的虚拟主机就配置完成了,下面在浏览器进行访问测试,输入192.168.3.136:8080,观察显示结果
3、基于用户请求作访问控制的配置
1. 编辑配置文件/etc/nginx/nginx.conf
#vim /etc/nginx/nginx.conf ….将上面server{}段的内容改成以下….. server { listen 8080; #监听8080端口 server_name www.vega.ict; #定义主机名 #凡是用户的URL带/的就定向至本地文件系统路径:/vhosts/web1/中 location / { root "/vhosts/web1/"; } #凡是用户的URL以.txt结尾的就定向至本地文件系统路径:/vhosts/text/中 location ~* \.txt$ { root "/vhosts/text/"; } }
2. 提供测试页面目录及页面主目录文件
#mkdir /vhosts/text #vim/vhosts/web1/a.txt ….添加以下内容,…. It is /vhosts/web1/a.txt #vim/vhosts/text/a.txt ….添加以下内容,…. It is /vhosts/text/a.txt
3. 从新载入配置文件,并进行相应测试
#/usr/local/nginx/sbin/nginx -s reload
在浏览器中测试访问,分别输入:http://192.168.3.136:8080/a.txt,之因此是访问的/vhosts/text/a.txt是由于~*location的优先级高于不带任何符号的location,因此就被定向至/vhosts/text/a.txt而非/vhosts/web1/a.txt.
4、基于IP的访问控制的配置(以状态页面为例)
1.编辑配置文件,添加location /status {}段:
#vim /etc/nginx/nginx.conf …..在上述定义server{}段中添加以下内容…. location /status { #定义状态页的URL为/status stub_status on; #开启状态页 allow 192.168.3.0/24; #容许192.168.3.0网段的主机访问 deny all; #其余网段的主机禁止访问
}
2.测试语法是否有误,然从新载入配置文件,最后执行访问测试便可
# /usr/local/nginx/sbin/nginx -t # /usr/local/nginx/sbin/nginx -s reload
基于IP的控制就配置完成了,下面对其进行测试访问,在浏览器中输入:http://192.168.3.136:8080/status,观察访问结果!!
5、基于用户的访问控制的配置
1.编辑配置文件/etc/nginx/nginx.conf
#vim /etc/nginx/nginx.conf ………在location{}段中,添加蓝色2行便可…… location /status { stub_status on; allow 192.168.3.0/24; deny all; auth_basic "Only for VIP"; auth_basic_user_file/etc/nginx/users/.htpasswd; }
2.在/etc/nginx目录建立认证用户目录users,并用命令htpasswd为用户tom建立认证文件.htpasswd(最好用隐藏文件,如.htpasswd)
# mkdir /etc/nginx/users # yum install httpd –y #htpasswd -c -m /etc/nginx/users/.htpasswd tom ….输入密码123便可
3.确保没有语法错误,并从新载入配置文件
#/usr/local/nginx/sbin/nginx -t #/usr/local/nginx/sbin/nginx -s reload
到此咱们基于用户的访问控制配置就完成了,下面对已经完成的配置进行访问测试,在浏览器中输入:http://192.168.3.136:8080/status,而后输入用户名tom和密码:123,认证经过便可访问nginx web服务器的状态页面了