从零开始学习Linux:Day04 源码安装Nginx 。acess/status/referer
常见web服务器有IIS,apche,nginx,tomcat,tengine等等,现在nginx使用占比上非常大,特别是电商,社区上大多都使用nginx,它有高并发的优点。以下是nginx自己对此的描述:a strong focus on high concurrency
为了便于后绪维护与管理。建议使用源码来安装nginx,虽然yum安装比较方便,但是yum安装后,nginx目录比较混乱。源码安装,可以指定安装目录,指定安装功能模块,比较灵活。
一、源码安装nginx
1、下载nginx源码包
cd /usr/src
wget -c http://nginx.org/download/nginx-1.16.0.tar.gz
或者:
wget –c http://nginx.org/download/nginx-1.16.0.tar.gz -P /usr/src
usr/src目录一般用来存放软件。所以通常会把软件下载到这个目录。
2、解压nginx源码包
tar -zxvf nginx-1.16.0.tar.gz
3、预编译
源码安装三步骤之第一步:预编译。为何要预编译,预编译就是来检测nginx源码安装时很依赖的环境 ,库文件。检测linux系统是否存在GCC,C++等编译环境 ,自定义安装的路径和nginx功能模块,最终产生makefile文件。
简单格式:
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module
4、编译
源码安装三步骤之第二步:编译。编译就是把通过make工具,把预编译产生的makefile文件通过GCC编译环境,将nginx源码文件编译成二进制文件。
5、安装
源码安装三步骤之第三步:安装。安装就是把编译产生的工进制文件,拷贝或安装到预编译时设定的目录里面,如:prefix=/usr/local/nginx
6、安装完成后,启动nginx服务,即可完成nginx源码安装
/usr/local/nginx/sbin/nginx
以上重启ngnix服务,在学习时频繁使用,可以使用alias自定义改短格式,以提高输入效率,如:
alias nginx=/usr/local/nginx/sbin/nginx
浏览器测试安装结果:
二、nginx配置都是在其配置文件里设置的。
以下介绍几个功能模块的使用:status,access ,referer
1、status
用来显示状态。默认为enable,即编译时加上这个模块,这个功能才会存在。
配置nginx配置文件,显示web服务器状态,可以在http server 或localtion下启用status
重启服务后,浏览时会显示状态信息,如下:
这个状态一般只要网站运维人员知道就可以了,不需要其他访问到。怎样才能拒绝其他主机访问这个呢?这就需要使用nginx另一个功能:access
2、access
access是访问控制,默认功能是disable,即预编译时,如果增加了这个功能,则是没有启动访问控制功能,是被禁用的,如果编译时没有增加,才会启用这个功能。
比如设定上面的status只允许本机可以查看,其他主机均被拒绝。
nginx配置文件里只需要设定:allow 本机ip deny all即可。
显示结果:
其他主机访问:
本机访问,由于本机是linxu系统,通过curl来访问,显示结果是可以访问:
3、referer
使用这个模块,可以设定防盗链。什么是防盗链,顾名思意就是,浏览的内容并不是自己本站的本身内容,是引用其他网站的资料。如果不想让别人的web服务引用自己的网站资料,可以通过referer功能设定防盗链。比如,设定,浏览到图片时,出现图裂。
举例:
在192.168.68.128服务器上,增加一个vim.gif图片,本机访问可以显示到这张练习vim命令的图片。
在192.168.68.129服务器上,增加一个测试页,用来引用192.168.68.128上的这张图片,浏览192.168.68.129这台服务器测试页,可以打开192.168.68.128上设定的图片。
现在,把192.168.68.128上设定防盗链
nginx服务reload后,再打开192.168.68.129上的测试页时,可以看到图片无法再被打开,同时,图片出现图裂
nginx功能非常强大,功能模块也非常多,nginx官网中有对各模块使用详细介绍:http://nginx.org/en/docs/ ,这里只是简单介绍这三个功能的使用。更多功能与用法下次与大家分享。最后,要查看nginx安装了哪些模块,可以使用大V
/usr/local/nginx/sbin/nginx -V