Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理

简介:

Nginx防盗链




1、[root@centos7 test.com]# vi /usr/local/nginx/conf/vhost/test.com.conf 

#+表示1或者多个,+前面的字符 

    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 ;

    #定义referer白名单

    if ($invalid_referer) {

        return 403;

    #if函数的意思是:如果不是白名单内的域名,返回值:403

    }

    access_log off;

}



验证:

curl -e:指定referer链接


[root@centos7 test.com]# curl -e "http://123123asdsd.test.com/asdas" -x127.0.0.1:80 -I test.com/baidu.png

HTTP/1.1 200 OK

Server: nginx/1.12.1


使用非白名单内的referer进行访问,被拒绝。


Nginx访问控制

需求:访问admin目录,只能允许几个指定IP可以访问,其他禁止

1、[root@centos7 test.com]# vim /usr/local/nginx/conf/vhost/test.com.conf 


server

{

    listen 80;

    server_name test.com  test2.com test3.com;

    index index.html index.htm index.php;

    access_log /tmp/test.com.log combined_realip;

    root /data/wwwroot/test.com;

    location /admin/

    {

    allow 192.168.3.74;

    allow 127.0.0.1;

    deny all;

    #从上至下的执行权限

    }

验证:

[root@centos7 test.com]# curl -x127.0.0.1:80  test.com/admin/admin.html

“admin root”

[root@centos7 test.com]# curl -x192.168.3.74:80  test.com/admin/admin.html

“admin root”


Nginx访问控制

可以匹配正则

location ~ .*(abc|image)/.*\.php$

{

        deny all;

}

根据user_agent限制

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')

{

      return 403;

}

 deny all和return 403效果一样


Nginx解析php相关配置


location ~ \.php$

        #匹配以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;

            #这里的路径要和root路径一致

        }



Nginx代理

工作模式:比如当用户访问真实主机192.168.1.100:8080时,不直接访问,通过nginx代理http://test.com访问,然后nginx跳转到真实主机上去,实现了nginx代理访问


1、

[root@centos7 vhost]# vi /usr/local/nginx/conf/vhost/tomcat.conf


server

{

    listen 80;

    server_name www.test-tomcat.com;

    #定义域名

    location /

    {

        proxy_pass      http://192.168.3.83:8080;

        #指定被代理(被访问)的IP(web服务器IP)

        proxy_set_header Host   $host;

        #$host指的是代理服务器的servername(也是被代理IP的域名)

        proxy_set_header X-Real-IP      $remote_addr;

#这个是在web端获取真实的IP,其中这个X-Real-IP是一个自定义的变量名,名字可以随意取

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

}


验证是否跳转:

00701815d1a1b63b01532e44179951d3.png-wh_




本文转自 jiekegz  51CTO博客,原文链接:http://blog.51cto.com/jacksoner/1981991
相关文章
|
21天前
|
PHP 项目管理 开发者
深入解析PHP的命名空间和自动加载机制
【4月更文挑战第4天】 在PHP的编程世界中,命名空间和自动加载机制是构建大型应用程序时不可或缺的工具。本文将深入探讨这两个概念,揭示它们如何简化代码结构、避免类名冲突以及提高代码维护性。通过对PHP命名空间的由来、作用域和使用方法的细致剖析,以及对自动加载机制工作原理和应用实践的全面讲解,读者将获得有效管理复杂项目中依赖关系的能力。
|
24天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
27 0
|
1月前
|
应用服务中间件 nginx
Nginx中如何配置中文域名?
Nginx中如何配置中文域名?
41 0
|
22天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
91 0
|
3天前
|
安全 应用服务中间件 网络安全
SSL原理、生成SSL密钥对、Nginx配置SSL
现在,你的Nginx虚拟主机应该已经配置了SSL,可以通过HTTPS安全访问。确保在生产环境中使用有效的SSL证书来保护通信的安全性。
10 0
|
4天前
|
关系型数据库 MySQL PHP
深入解析PHP中的命名空间
【4月更文挑战第20天】在PHP的编程世界中,命名空间是一个强大的工具,用于解决代码中的名称冲突问题。通过本文的深度解析,我们将探索PHP命名空间的概念、实现原理以及它们如何优雅地帮助我们管理代码库。从基础的定义到高级用法,本篇文章旨在提供一份全面的指南,帮助开发者有效利用命名空间来优化他们的PHP项目结构和可维护性。
|
5天前
|
域名解析 缓存 负载均衡
Nginx正向代理域名的配置
Nginx正向代理域名的配置
|
5天前
|
前端开发 JavaScript 应用服务中间件
修改Jeecg-boot context-path(附加图片+Nginx配置)
修改Jeecg-boot context-path(附加图片+Nginx配置)
12 0
|
16天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
24 0
|
17天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
27 0

推荐镜像

更多