nginx 基于IP和用户的访问

nginx的下载

复制代码
yum install nginx.x86_64 -y

启动服务

复制代码
systemctl enable --now nginx.service

查看服务目录

复制代码
[root@webserver ~]# rpm -ql nginx
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/nginx/html/system_noindex_logo.png
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim

修改默认发布

复制代码
echo 172.25.254.100 > /usr/share/nginx/html/index.html

结果

基于IP的访问限制

复制代码
vim /etc/nginx/nginx.conf
 server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        #root         /usr/share/nginx/html;
​
        root         /var/www/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
​
        error_page 404 /404.html;
        location = /404.html {
        }
​
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
        location = /timinglee/ {
                allow 172.25.254.100;
                deny all;
        }
    }

allow 172.25.254.100;

deny all;只允许172.25.254.100访问

结果

100的主机

复制代码
[root@webserver ~]# curl 172.25.254.100/timinglee/
timinglee

200的主机

复制代码
[root@server200 ~]# curl 172.25.254.100/timinglee/
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>

基于用户的访问

上面的实验做完,恢复环境

复制代码
[root@webserver ~]# mkdir -p /usr/share/nginx/html/timinglee
[root@webserver ~]# echo timinglee > /usr/share/nginx/html/timinglee/index.html
[root@webserver ~]# curl 172.25.254.100/timinglee/
timinglee
建立隐藏的认证文件,以.开头
下载所需的工具
[root@webserver ~]# dnf install httpd-tools -y
创建所需的认证文件
[root@webserver ~]# htpasswd -cm /etc/nginx/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
这里的用户并不是系统真实的用户
[root@webserver ~]# cat /etc/nginx/.htpasswd
admin:$apr1$.BwhiHQk$uSJKKScJdh6T.XQTnRxmX.
第二次创建
[root@webserver ~]# htpasswd -m /etc/nginx/.htpasswd timinglee
New password:
Re-type new password:
Adding password for user timinglee
[root@webserver ~]# cat /etc/nginx/.htpasswd
admin:$apr1$.BwhiHQk$uSJKKScJdh6T.XQTnRxmX.
timinglee:$apr1$b9AI5qvA$seGe4elxYymRfVTRwob0a1

打开主配置文件

复制代码
[root@webserver ~]# vim /etc/nginx/nginx.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  _;
    root         /usr/share/nginx/html;
​
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
​
    error_page 404 /404.html;
    location = /404.html {
    }
​
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
    location /timinglee/ {
            auth_basic on;
            auth_basic_user_file "/etc/nginx/.htpasswd";
    }
}
进行重启
[root@webserver ~]# systemctl restart nginx.service

验证

复制代码
[root@webserver ~]# curl 172.25.254.100/timinglee/ -uadmin:123456
timinglee

俩种验证方式任选择

相关推荐
不仙5201 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
AI视觉网奇2 小时前
linux 检索库 判断库是否支持
java·linux·服务器
dapeng-大鹏2 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展
闫记康3 小时前
Linux学习day5
linux·chrome·学习
TechPioneer_lp3 小时前
30 岁硕士 Linux C 开发背景,未来想去澳洲就业,研究方向该选 AI、SDN 漏洞还是 Linux 内核?
linux·人工智能·职业规划·澳洲求职
_kerneler4 小时前
[qemu+kvm]: trap 寄存器脱敏优化方法
linux
猫猫的小茶馆4 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
代码AC不AC5 小时前
【Linux】线程概念
linux·线程
神奇小梵6 小时前
关于finalshell的使用
linux·服务器·网络
vortex56 小时前
进程管理器大横评:从 PM2 到 Systemd 的选型与实战
linux·shell·进程管理