通过nginx给skywalking后台添加权限

说明

skywalking在高版本去掉了security后台权限,只能通过其他方式配置后台访问权限。
nginx默认提供了【ngx_http_auth_basic_module】模块,改模块功能实现让用户只有输入正确的账号密码才能访问web。
需要使用第三方工具设置用户名及密码即可。

1.nginx配置

  1. server
  2. {
  3. listen 80;
  4. server_name skywalking.xxx.com;
  5. location / {
  6. auth_basic "Please input password"; #这个是提示信息
  7. auth_basic_user_file /usr/local/nginx/conf/htpasswd; #存放密码文件的路径
  8. proxy_redirect off;
  9. proxy_pass http://skywalkingServer;
  10. proxy_set_header Host $host;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. proxy_set_header X-Forwarded-Proto $scheme;
  14. proxy_set_header Cookie $http_cookie;
  15. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
  16. proxy_max_temp_file_size 0;
  17. proxy_connect_timeout 480;
  18. proxy_send_timeout 360;
  19. proxy_read_timeout 360;
  20. proxy_buffer_size 4k;
  21. proxy_buffers 4 32k;
  22. proxy_busy_buffers_size 64k;
  23. proxy_temp_file_write_size 64k;
  24. client_max_body_size 200m; #上传文件大小限制
  25. }
  26. }
  27. upstream skywalkingServer{
  28. server 127.0.0.1:8080;
  29. }

2.使用htpasswd生成密码文件

which htpasswd #查看是否安装htpasswd
提示下面信息代表为安装
/usr/bin/which: no htpasswd in (/opt/java/jdk-11.0.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
安装
image.png

yum -y install httpd #安装httpd

查看是否安装

rpm -qf /usr/bin/htpasswd #查看是否安装

生成密码文件

htpasswd -cb /usr/local/nginx/conf/htpasswd skywalking helloDz! #生成密码文件

提示下面内容说明添加成功
image.png
设置文件权限
chmod 400 /usr/local/nginx/conf/htpasswd #为了安全设置文件权限

3.重启nginx

image.png
./nginx -t #检查语法是否正常
./nginx -s reload

4.效果

image.png