
LNMP架构(Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理)
发布日期:2025-04-11 01:54:53
浏览次数:8
分类:精选文章
本文共 2201 字,大约阅读时间需要 7 分钟。
Nginx防盗链及访问控制配置详解
Nginx防盗链
防止网站资源被非法引用是每个网站管理员的重要任务之一。Nginx提供了一种简单有效的防盗链解决方案,以下是详细的配置步骤。
1. 配置防盗链
编辑虚拟主机文件/usr/local/nginx/conf/vhost/test.com.conf
,在location
块中添加以下配置:
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls) { expires 7d; valid_referers none blocked server_names *.test.com; if ($invalid_referer) { return 403; } access_log off;}
2. 配置文件检查与重新加载
执行以下命令确保配置无误并重新加载:
/usr/local/nginx/sbin/nginx -t/usr/local/nginx/sbin/nginx -s reload
3. 测试防盗链
使用curl
命令测试引用的效果:
curl -e "http://www.baidu.com/123.txt" -x127.0.0.1:80 -I test.com/test.jpg
若返回403 Forbidden,说明防盗链配置成功。
Nginx访问控制
###需求仅允许特定IP访问/admin/
目录,防止一句话木马攻击。
###配置步骤
编辑虚拟主机文件/usr/local/nginx/conf/vhost/test.com.conf
,添加以下配置:
location /admin/ { allow 192.168.248.129; # 允许特定IP访问 allow 127.0.0.1; # 允许本地访问 deny all; # 否则拒绝访问}
注意事项
- 配置中的
allow
和deny
规则按顺序执行,allow
优先于deny
。 - 确保目标服务器的防火墙规则开放了80端口。
测试步骤
在Windows机器中:
- 配置hosts文件。
- 打开防火墙端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
使用浏览器访问http://test.com/admin/
,若未授权IP访问将返回403 Forbidden。
查看Nginx日志:cat /tmp/test.com.log
,确认被拒绝访问的IP地址。
Nginx解析PHP配置
1. 配置解析PHP
编辑虚拟主机文件/usr/local/nginx/conf/vhost/test.com.conf
,添加以下配置:
location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;}
2. 配置文件检查与重新加载
执行以下命令:
/usr/local/nginx/sbin/nginx -t/usr/local/nginx/sbin/nginx -s reload
3. 测试502错误
使用curl
测试:
curl -x127.0.0.1:80 test.com/test0816.php
若返回502 Bad Gateway,需检查php-fpm
配置文件/etc/php-fpm.conf
,确保listen
设置正确。
Nginx代理配置
1. 创建代理配置文件
进入/usr/local/nginx/conf/vhost/
目录,创建新文件proxy.conf
:
server { listen 80; server_name ask.apelearn.com; location / { proxy_pass http://223.94.95.10/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
2. 配置文件检查与重新加载
执行以下命令:
usr/local/nginx/sbin/nginx -tusr/local/nginx/sbin/nginx -s reload
3. 测试代理效果
使用curl
命令测试:
curl -x127.0.0.1:80 ask.apelearn.com/robots.txt
拓展
502问题汇总
- 确保
php-fpm
服务正常运行。 - 检查
nginx
错误日志:tail -f /tmp/nginx.log
。
location优先级
location
块的匹配顺序至关重要,^~
优先于~*
,.*
优先于.*.(ext)
。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月16日 08时28分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux进阶之Shell-sed
2023-02-05
Linux远程连接wget、curl、scp命令详解
2023-02-05
linux递归参数-R(r)和-p的区别
2023-02-05
Linux通用应急响应脚本(非常详细)零基础入门到精通,收藏这一篇就够了
2023-02-05
Linux逻辑卷管理实战
2023-02-05
Linux部署Elasticsearch(一):下载和部署Elasticsearch
2023-02-05
Linux部署Oracle
2023-02-05
Linux部署Tomcat
2023-02-05
Linux部署前后端分离项目(SpringBoot+Vue)【Nginx部署】
2023-02-05
linux部署安装SRS流媒体服务器教程
2023-02-05
Linux配置-【10】基础操作指令
2023-02-05
Linux配置-【11】搜索、过滤、压缩指令
2023-02-05
Linux配置-【12】Shell脚本编写
2023-02-05
Linux配置-【1】安装使用JDK
2023-02-05
Linux配置-【2】配置防火墙端口与映射
2023-02-05
Linux配置-【3】服务器配置Springboot项目
2023-02-05
Linux配置-【4】配置MySQL5.6版本
2023-02-05
Linux配置-【5】内存不足导致MySQL启动报错
2023-02-05