部署nginx服务用于浏览服务器目录并实现账号密码认证登录

1、背景:

因公司业务需求,部署一套数据库备份中心服务,但是因为备份的数据库很多,有项目经理要求能经常去查看备份数据库情况及下载备份数据文件的需求。根据该需求,需要在备份数据库的服务器上部署一个nginx服务,同时考虑安全性,需要加入用户密码登入的机制。

2、部署nginx服务:

安装nginx服务:

bash 复制代码
[root@idc-db-back ~]# yum install -y nginx
.......

检查nginx服务:

bash 复制代码
[root@idc-db-back ~]# rpm -qa | grep nginx
nginx-filesystem-1.20.1-10.el7.noarch
nginx-1.20.1-10.el7.x86_64

因为没有对nginx服务有版本的要求,所以直接yum方式安装即可。源码编译安装也可以的。

3、设置nginx服务配置文件内容:

bash 复制代码
[root@idc-db-back ~]# cd /etc/nginx/
[root@idc-db-back nginx]# vim nginx.conf

编辑nginx.conf文件后的内容如下:

bash 复制代码
[root@idc-db-back nginx]# cat nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        server_name  localhost;
        
        location / {
      		root /etc/nginx/html;
		    index index.html index.htm;
	}
        location /backup {
            alias /back_db;
            autoindex on;
            autoindex_exact_size off;
            autoindex_localtime on;
        }

    }

}

因还要求访问nginx服务需要进行用户密码登入验证功能,所以还需要配置htpasswd参数。
在radhat 7系统上,可以通过安装httpd-tools软件包来获得htpasswd工具。执行以下命令来安装它:

bash 复制代码
[root@idc-db-back nginx]# yum install httpd-tools

完成安装后,可以使用以下命令来使用htpasswd工具创建账号密码文件:

bash 复制代码
[root@idc-db-back nginx]# htpasswd -c /etc/nginx/.htpasswd backup

该命令将提示您输入一个密码,并将账号密码保存在/etc/nginx/.htpasswd文件中。

将htpasswd运用到nginx中去:

bash 复制代码
    server {
        listen       80;
        server_name  localhost;

        # Load configuration files for the default server block.
        
        location / {
      		root /etc/nginx/html;
		    index index.html index.htm;
            auth_basic "Restricted html";
            auth_basic_user_file /etc/nginx/html/.htpasswd;

	}
        location /backup {
            alias /back_db;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
            autoindex on;
            autoindex_exact_size off;
            #autoindex_localtime on;
        }

    }

}

这里我加了两个密码认证,因为有一个首页的认证,

4、重启nginx服务:

完成配置后,使用以下命令重启Nginx以使更改生效:

bash 复制代码
[root@idc-db-back nginx]# systemctl restart nginx

检查nginx服务运行状态:

cpp 复制代码
[root@idc-db-back nginx]# netstat -anlp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2532/nginx: master  
unix  3      [ ]         STREAM     CONNECTED     295616   2532/nginx: master   
unix  3      [ ]         STREAM     CONNECTED     295611   2532/nginx: master   

5、验证nginx服务功能:

在浏览器输入发布地址url

输入设置用户密码,即可

总结:到此就完成了nginx服务访问后端目录文件,并实现下载龚,同时具备了用户登入认证功能。

相关推荐
Csvn6 小时前
认识 Nginx
后端·nginx
一个天蝎座 白勺 程序猿6 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
分布式存储与RustFS10 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希12310 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
@兽血沸腾11 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
讯捷蓝达17 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
爱和冰阔落19 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
陈希12319 小时前
Nginx 从入门到能扛事:反向代理、负载均衡与 HTTPS 实战
nginx·https·负载均衡
lisanmengmeng20 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮20 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频