SkyWalking 从 8.0.0 版本开始弃用了自身的安全验证功能。在此之前,SkyWalking 提供了一种基于 HTTP Basic Auth 的简单认证方式,可以通过用户名和密码来保护 SkyWalking 界面和 API。
要在 Centos 上使用 Nginx 部署 SkyWalking 9.3.0 并设置浏览器端访问时需要输入账户和密码,可以按照以下步骤进行操作:
1. Nginx部署
1.1更新系统软件包
#在安装任何新软件包之前,请确保您的系统上已经更新了所有现有的软件包。
1.2安装EPEL存储库
#默认情况下,CentOS仓库中不包含Nginx软件包。因此,我们需要安装EPEL(Extra Packages for Enterprise Linux)存储库,它包含了大量的额外的软件包,其中包括Nginx。
1.3安装Nginx
#一旦EPEL存储库被启用,您就可以使用yum来安装Nginx了。
2. 修改 Nginx 配置文件
vim /etc/nginx/nginx.conf。添加以下配置:
server {
listen 80;
server_name example.com; # 替换成自己的域名或 IP 地址
location / {
proxy_pass http://localhost:18080; # 将请求转发到 SkyWalking 服务器
auth_basic “Restricted“; # 启用基本身份验证,显示提示信息
auth_basic_user_file /etc/nginx/htpasswd; # 指定存储用户名和密码的文件路径
}
}
2.1. 字段解释
- proxy_pass 字段指定将所有请求转发到 SkyWalking 服务器上的端口18080。
- auth_basic 字段指定浏览器显示的提示信息,auth_basic_user_file 字段指定存储用户名和密码的文件路径。
3. 创建存储用户名和密码的文件
3.1 安装htpasswd工具
3.2 验证
#安装完成后,您可以运行以下命令来验证是否已成功安装htpasswd工具:
#如果hthtpasswd安装成功,将显示htpasswd的版本信息。否则,您可能需要重新启动系统后再次尝试安装。
然后输入密码,即可创建一个具有管理员权限的用户 admin。
4. 验证代理及身份认证
首先,请检查SELinux是否已启用:
Getenforce
如果输出为“Enforcing”,则表示SELinux处于启用状态。
- 临时禁用SELinux
#此命令将SELinux设置为“宽松”模式(即不执行强制访问控制),并允许NGINX代理服务器连接到上游服务器。请注意,此操作可能会降低系统安全性,因此应该谨慎使用。
如果要永久更改SELinux配置,则必须编辑/etc/selinux/config文件,并将其SELINUX值更改为“permissive”或“disabled”。
如果将SELINUX设置为“permissive”,则SELinux仍然处于启用状态,但仅记录警告和错误,而不执行强制访问控制。
如果将SELINUX设置为“disabled”,则完全禁用SELinux。(需重启服务器)
#在浏览器中输入在 nginx.conf 中指定的域名或 IP 地址,例如:http://example.com。将会看到一个登录页面,输入之前创建的用户名和密码即可登录。
通过以上步骤,就可以使用 Nginx 部署 SkyWalking 9.3.0 并设置浏览器端访问时需要输入账户和密码进行身份认证。
4. 常见报错及解决方法
使用nginx为skywalking配置账户登陆后浏览器端访问报错,可能是因为 Nginx 无法将请求转发到 SkyWalking 服务器上的端口。
4.1. 检查监听
端口检查 SkyWalking 服务器是否已正确启动并正在监听正确的端口。可以使用以下命令检查:
netstat -tlnp | grep “8080” # 检查是否有进程在监听端口 8080
4.2. 检查配置文件字段地址
检查 Nginx 配置文件中 proxy_pass 字段是否正确指定了 SkyWalking 服务器的地址和端口。可以尝试直接访问 SkyWalking 服务器的 IP 地址和端口,确认是否可以正常访问。
4.3. 检查防火墙设置
确保允许来自 Nginx 的请求通过。例如,如果使用 firewalld,可以执行以下命令放行端口:
firewall–cmd –zone=public —add-port=80/tcp –permanent # 放行 HTTP 端口
firewall–cmd —reload # 重新加载防火墙规则
4.4. 检查 Nginx 日志
/var/log/nginx/error.log,查看是否有其他错误信息。可以使用以下命令实时监控日志:
tail -f /var/log/nginx/error.log
4.5. 排查代理类型
如果以上步骤都没有解决问题,可以尝试修改 Nginx 配置文件中的代理类型。例如,如果 SkyWalking 服务器使用的是 HTTPS 协议,可以在 location / 中添加以下配置:
其中,proxy_ssl_server_name 表示要将原始请求头中的 Host 头发送到后端服务器,proxy_pass 指定要转发到的 SkyWalking 服务器的地址和端口。
5. 常见502报错
如果在使用NGINX代理到上游服务器时遇到“connect() to [::1]:18080 failed (13: Permission denied) while connecting to upstream”错误消息,这通常是由于SELinux限制引起的。您可以通过禁用或配置SELinux来解决此问题。
5.1. 检查SELinux状态
首先,请检查SELinux是否已启用:
如果输出为“Enforcing”,则表示SELinux处于启用状态。
5.2. 临时禁用SELinux
要临时禁用SELinux,请运行以下命令:
此命令将SELinux设置为“宽松”模式(即不执行强制访问控制),并允许NGINX代理服务器连接到上游服务器。请注意,此操作可能会降低系统安全性,因此应该谨慎使用。
5.3. 永久更改SELinux配置
如果要永久更改SELinux配置,则必须编辑/etc/selinux/config文件,并将其SELINUX值更改为“permissive”或“disabled”。
• 如果将SELINUX设置为“permissive”,则SELinux仍然处于启用状态,但仅记录警告和错误,而不执行强制访问控制。
• 如果将SELINUX设置为“disabled”,则完全禁用SELinux。
请注意,更改此配置可能会影响系统安全性,并使系统容易受到攻击,因此应该谨慎使用。
5.4. 重启服务器
完成SELinux配置更改后,需要重新启动服务器才能使更改生效:
如果您不想重新启动服务器,则可以使用以下命令暂时停用SELinux:
这将使SELinux临时处于“宽松”模式。请注意,此操作可能会降低系统安全性。
原文地址:https://blog.csdn.net/qq_52497256/article/details/130411850
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_8421.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!