nginx为目录添加访问控制和UA实现手机端和电脑端的分离

nginx为目录添加访问控制和UA实现手机端和电脑端的分离

nginx为目录添加访问控制

==用户访问控制:==使用apache的htpasswd来创建密码文件。

[root@localhost ~] yum -y install httpd-tools
[root@localhost ~] htpasswd -c /usr/local/nginx/.htpasswd crushlinux
#设置密码
[root@localhost ~] vim /usr/local/nginx/conf/nginx.conf
	#我们这里是匹配的是status,当然也可以将后两条写在其他的location{}之中
	location ~ /status {
		stub_status on;			#开启状态统计功能
		access_log off;			#不写入日志,由于用户访问的是状态统计并不是在访问网页所以不记录到日志文件中
		auth_basic "Nginx Status";			#基本认证,由于摘要日志有的浏览器不支持,故我们用基本认证方式
		auth_basic_user_file /usr/local/nginx/.htpasswd;
		}

客户端地址访问控制
我们在配置文件中加入最后两行配置也就是allow和deny。

[root@localhost ~] vim /usr/lcoal/nginx/conf/nginx.conf
	location ~ /status {
		stub_status on;
		access_log off;	
		auth_basic "Nginx Status";
		auth_basic_user_file /usr/local/nginx/.htpasswd;
		allow 192.168.1.3;		#允许1.3访问
		deny 192.168.1.0/24;		#拒绝1.0网段
通过UA实现手机端和电脑端的分离

大家细心的人会发现,同样是csdn,我们手机App和电脑网页的内容是不一样的较为明显的是App上有一个极客头条(一段可在上班听的录音)所以接下来教大家来配置手机端和电脑端的分离,希望能帮到大家。
实现nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套pc端、一套移动端)这样带来的好处是pc端和移动端的内容可以不一样,移动版网站不需要包含特别多的内容,只要包含必要的文字和较小的图片即可,这样会更加的节省流量。缺点是你需要维护两套环境,并且需要自动识别出来用户的物理设备并跳转到相应的网站,当判断错误时用户可以自己手动切换回正确的网站。
环境:有两套网站代码,一套PC版在/usr/local/nginx/html/web,一套移动版放在/usr/local/nginx/html/mobile。只需要修改nginx的配置文件,nginx通过UA来判断是否来自移动端访问,实现不同的客户端访问不同的内容。
创建目录的步骤我就不写了,自己去模拟网页就好了。

location / {
	#默认PC端访问内容
	root /usr/lcoal/nginx/html/web;
	#如果是手机移动端访问内容,举几个常见的移动端的例子多了就不写了,其他的可在访问日志里面去看设备名,在手动添加到()里面。
	if ( $http_user_agent ~
	"(Mobile)|(MIDP)|(SAMSUNG)|(iPone)|(ZTE)|(PHILIPS)|(HAIER)|(java)|(curl)|(Android)|(LENOVO)")
	{
		root /usr/local/nginx/html/mobile;
	}
	index index.html index.html;
}
模拟案例:不同的浏览器访问到不同的页面
[root@localhost html] mkdir firefox msie
[root@localhost html] echo "hello,firefox" > firefox/index.html
[root@localhost html] echo "hello,chrome" > chrome/index.html
#在nginx.conf文件中加入配置
	location / {
	if ($http_user_agent ~ Firefox) {
		root /usr/local/nginx/html/firefox;
	}
	if ($http_user_agent ~ Chrome) {
		root /usr/local/nginx/html/chrome;
	}
		index index.html index.html;	
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值