Nginx 开源且跨平台的软件 俄罗斯人开发的 提供网站服务 和 代理服务
Nginx 提供网站服务应用环境?
1.虚拟主机
2.用户访问控制
3.用户验证
4.防盗链
实验环境:
安装软件:nginx-0.855.tar.gz
操作系统:centos6.5
实验:(一)
实验目的:nginx源码包的安装以及基本的使用。
安装源码包要安装的工具:开发工具 和开发环境
1.安装nginx源码包
建立ngix软件夹用来存放nginx软件包
添加一个进程的所有者和所属组为www,www为nginx进程的所有者和所属组。
对源码包进行配置,--prefix指定nginx配置存放的目录,--user指定所有者,--group指定所属组,--with-http_ssl_module指定用户可以用https访问的模块,--with-http_stub_status_module指定通过web页面的方式查看nginx被访问的信息情况的模块。
通过以上配置安装时出现以下错误http rewrite(地址重写模块需要pcre库,要求安装PCRE库),rewrite 地址重写 修改客户端访问自己的url 路径,使用perl风格正则表达式去匹配用户访问自己URL源路径 (PCRE library)。
查看系统安装的pcre包有那些,软件包中有那些,如果没有全部安装用yum安装,pcre-devel软件包为pcre软件提供库文件。
源码包 再次配置时又出现错误,错误如下。
安装openssl库文件
安装make&make install
2.nginx目录下内容conf为配置文件目录,html为网页目录,logs为日志目录,sbin为启动目录。
查看各个目录下有那些文件,nginx.conf 为主配置文件,nginx.conf.default为配置文件的模板,index.html为默认的网页,nginx为启动命令。
默认nginx的端口为80,查看是否有其他的进程占用80端口,如果有关闭。
3.启动nginx服务(sbin/nginx,并且查看端口进程和logs下的内容,access.log为访问日志,error.log为错误日志,nginx.pid为进程pid号。
停止nginx服务
启动nginx的配置参数,-t为检查配置文件是否有错误,-v查看nginx版本信息,-V查看nginx配置参数,-c指定其他配置文件,-s停止nginx服务,-h查看帮助信息。
停止服务的其他方式
pkill -9 nginx
kill -信号 nginx
TERM, INT 快速关闭
QUIT 从容关闭,关闭主进程顺便关闭工作子进程
HUP 用新的配置开始新的工作进程从容关闭旧的工作进程
USR1 重新打开日志文件
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程,不会立即关闭子进程
kill -HUP `cat /usr/local/nginx/logs/nginx.pid` 重启服务
实验(二)
实验目的:公司目前有多个网站要发布,由于资金有限并且为了节省资源,提高资源的利用率,公司决定在一台服务器上发布多个网站并且用户访问时做一些限制。
1.基于域名的虚拟主机
实验环境:
服务器的IP地址:192.168.1.10,网页存放目录为/wwwdir和/bbsdir,
网页存放目录的默认网页为/wwwdir/index.html内容为wwwpage,/bbsdir/index.html内容为bbspage.主机名分别为:www.tarena.com 和 bbs.tarena.com.
客户机的IP地址:192.168.1.20
修改主配置文件(删除主配置文件中的空行和有#开头的行),server代表有网页目录,listen监听的端口,server_name为主机名,location代表网页的存放信息,root为网页存放的目录,index为网页目录的网页。
查看主配置文件是否有错误。
重新启动nginx服务
创建目录 /wwwdir/index.html的内容为wwwpage,/bbdir/index.html的内容为bbspage.
在客户端测试是否可以访问网页
2.基于端口的虚拟主机(通过客户端访问的端口区分用户的访问)。
实验环境:
服务器的IP地址:192.168.1.10,网页存放目录为默认的html和/bbsdir,
网页存放目录的默认网页为index.html内容为wwwpage,/bbsdir/index.html内容为bbspage.主机名分别为:www.tarena.com
当用户访问http://www.tarena.com:80 显示的为默认的nginx网页内容为wwwpage
当用户访问http://bbs.tarena.com:8080 显示的为/bbsdir目录下的bbspage
(1).创建网页目录
(2).修改主配置文件
(3).重新启动服务
(4).在客户端测试
3.实验目的:对页面做IP地址的绑定和端口的绑定,对访问页面的用户进行限制。
(1)nginx服务器端的IP地址为192.168.1.10,当用户访问http://www.tarena.com 显示的页面为默认的nginx网页,当用户访问http://www.tarena.com:8090 显示的页面为 /bbsdir的页面,
(2)只允许192.168.1.20用户访问http://www.tarena.com,其他所有人都不能访问。
客户端访问限制 + 用户验证
deny 客户端地址 拒绝客户端访问
allow 客户端地址 允许客户端访问 *默认允许所有客户端访问
客户端地址表示方式:
all 所有客户端地址 、 192.168.1.1 某个ip地址 、 192.168.1.0/24 网段
(3)当用户访问网站时需要验证才能访问。
(1)修改nginx主配置文件
客户端测试
(2)修改主配置文件
在客户端进行测试
(3)修改主配置文件auth_basic 为用户需要输入用户名和密码,auth_basic_user_file为需要加载 user.txt文件 ,user.txt里放的是用户名和密码。
生成用户名和密码的软件包
生成用户名和密码
客户机需要有图像界面打开浏览器输入www.tarena.com时会弹出一个对话框,需输入用户名和密码
实验(三)
实验目的:平滑升级nginx服务(不用停止服务,在线升级)。
解压1.05版本的nginx软件,并进行配置。
改变/user/local/nginx/sbin/nginx为nginx.old,把 当前 目录下的nginx放到、user/local/nginx/sbin/下
平滑升级nginx服务
实验(四)
实验目的:公司是一个视频网站有很多视频文件 音频文件 图片文件,为了防止别人链接自己的资源为自己谋利,公司要求网站禁止别人进行链接。
1.修改主配置文件
location匹配用户的url地址的,~代表匹配,*代表忽略字面大小写, ()代表匹配的内容,\代表转义符是点的转义符,$代表以什么结尾的,valid_referers为内置变量存放的是URL的值,URL类型有4种(none类型为没有网络路径的访问,blocked表示通过防火墙转换后的地址,网站主机名类型,网站所在区域的类型)。
2.测试主配置文件是否有错误
3.重新启动服务
总结:
域名虚拟主机 发布给公网客户端访问
ip的虚拟主机 + 端口的虚拟主机 测试或发布网站后台的管理页面