linux – 设置nginx.conf以拒绝除某些文件或目录之外的所有连接
发布时间:2020-12-14 02:41:19 所属栏目:Linux 来源:网络整理
导读:我正在尝试设置Nginx,以便拒绝所有与我的数字ip的连接,除了一些任意目录和文件.因此,如果有人访问我的IP,他们可以访问index.php文件和phpmyadmin目录,但是如果他们尝试访问任何其他目录,他们将被拒绝. 这是我在nginx.conf中的服务器块: server { listen 80;
我正在尝试设置Nginx,以便拒绝所有与我的数字ip的连接,除了一些任意目录和文件.因此,如果有人访问我的IP,他们可以访问index.php文件和phpmyadmin目录,但是如果他们尝试访问任何其他目录,他们将被拒绝.
这是我在nginx.conf中的服务器块: server { listen 80; server_name localhost; location / { root html; index index.html index.htm index.php; } location ~ .php${ root html; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/http/nginx/$fastcgi_script_name; include fastcgi_params; } } 我该怎么办?非常感谢! 解决方法
最简单的方法是首先拒绝所有访问,然后只授予对所需目录的访问权限.正如ring0指出的那样,你可以使用listen指令的默认值(default_server in 0.8)标志.但是,如果您已经有一台服务器要用作主机未知命名访问的默认服务器,您也可以只捕获没有主机头的请求或服务器的ip地址,如下所示(用你的1.2.3.4替换)服务器的IP:
upstream _php { server unix:/var/run/php-fpm/php-fpm.sock; } server { server_name "" 1.2.3.4; root /path/to/root; index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # deny everything that doesn't match another location location / { deny all; } # allow loading /index.php location = / { } # need to allow GET / to internally redirect to /index.php location = /index.php { fastcgi_pass _php; } # allow access to phpmyadmin location /phpmyadmin/ { } # Allow access to static files in /phpmyadmin/ location ~ ^/phpmyadmin/.*.php${ fastcgi_pass _php; } # phpmyadmin php files } fastcgi_params将由fastcgi_pass和仅允许/index.php和/ phpmyadmin /的两个位置继承.我还为php添加了一个上游块,如果你将来需要添加或更改它,它会更容易. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 是否可以使用Linux命令从HTTP服务器读取前N个字节?
- linux内核 – 在网络处理中使用自旋变体
- linux – 什么是核心,为我的VPS购买更多内核会加快页面加载
- linux无界面模式安装selenium+chrome+chromedriver并成功完
- 使专有的ELF二进制文件在Linux上可移植
- LINUX实操:使用Xshell连接Ubuntu详解
- linux – 当我重新启动Ubuntu服务器时如何重新启动sphinx?
- linux – 推荐使用哪一个:使用静态库与动态库(共享对象)
- pinvoke – 使用Linux在.net核心中进行P-Invoke
- linux – 将sudo限制为只有一个目录,它是sudoers文件的子目