通过 nginx 配置基本的安全验证

以前我也有个疑问 像solr, elasticsearch 我布置好之后如果我想远程访问只能开放端口,而他们本身并没有验证,当然有其他策略比如,配置一台跳板机,只允许特定的跳板机访问, 自己没那么好条件也不想弄那么麻烦就采用简单的方法做验证

步骤

  1. 在 nginx 配置目录下创建密码
1
2
3
4
5
mkdir password
cd password/
printf "root:$(openssl passwd -crypt password)\n" > passwords # 密码不超过8位
pwd
/etc/nginx/password # 在 nginx中 使用
  1. 配置nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
upstream elasticsearch {
server 127.0.0.1:9200 weight=10;

}
server {
listen 19200;
server_name localhost;
auth_basic "Protection";
auth_basic_user_file /etc/nginx/password/passwords;

location / {
proxy_pass http://elasticsearch;
proxy_redirect off;
}
}
  1. 重启nginx, 打开 localhost:19200

这让我想起给solr做验证时采用非常麻烦的方法真是蛋蛋疼
如果你的解决方案很复杂你要相信一定还有更好的你不知道的解决方案,去寻找吧少年