Nginx中的用户认证配置及阻止用户使用代理访问的方法 小灰灰 2022-03-09 08:52 428阅读 0赞 # 转自:[Nginx中的用户认证配置及阻止用户使用代理访问的方法][Nginx] # **nginx用户认证配置( Basic HTTP authentication)** ngx\_http\_auth\_basic\_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。nginx的http auth模块以及Apache http auth都是很好的解决方案。 默认情况下nginx已经安装了ngx\_http\_auth\_basic\_module模块,如果不需要这个模块,可以加上 --without-http\_auth\_basic\_module 。 nginx basic auth指令 语法: auth\_basic string | off; 默认值: auth\_basic off; 配置段: http, server, location, limit\_except 默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。 语法: auth\_basic\_user\_file file; 默认值: — 配置段: http, server, location, limit\_except 用户密码文件,文件内容类似如下: ttlsauser1:password1 ttlsauser2:password2:comment nginx认证配置实例 [?][Link 1] <table> <tbody> <tr> <td> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> <p>8</p> <p>9</p> <p>10</p> <p>11</p> <p>12</p> <p>13</p> </td> <td> <p><code>server{ </code></p> <p><code> </code><code>server_name www.jb51.net jb51.net;</code></p> <p><code> </code> </p> <p><code> </code><code>index index.html index.php;</code></p> <p><code> </code><code>root /data/site/www.jb51.net; </code></p> <p><code> </code> </p> <p><code> </code><code>location /</code></p> <p><code> </code><code>{ </code></p> <p><code> </code><code>auth_basic "nginx basic http test for jb51.net";</code></p> <p><code> </code><code>auth_basic_user_file conf/htpasswd; </code></p> <p><code> </code><code>autoindex on;</code></p> <p><code> </code><code>}</code></p> <p><code>}</code></p> </td> </tr> </tbody> </table> 备注:一定要注意auth\_basic\_user\_file路径,否则会不厌其烦的出现403。 生成密码 可以使用htpasswd,或者使用openssl [?][Link 1] <table> <tbody> <tr> <td> <p>1</p> <p>2</p> <p>3</p> </td> <td> <p><code># printf "ttlsa:$(openssl passwd -crypt 123456)\n" >>conf/htpasswd</code></p> <p><code># cat conf/htpasswd </code></p> <p><code>ttlsa:xyJkVhXGAZ8tM</code></p> </td> </tr> </tbody> </table> 账号:ttlsa 密码:123456 reload nginx [?][Link 1] <table> <tbody> <tr> <td> <p>1</p> </td> <td> <p><code># /usr/local/nginx-1.5.2/sbin/nginx -s reload</code></p> </td> </tr> </tbody> </table> 效果如下: ![201611193910616.jpg (474×193)][201611193910616.jpg _474_193] 完成~ **Nginx阻止用户代理** 些时候,需要阻止某些用户代理访问网站,比如ab,wget,curl等等,这就需要使用到$http\_user\_agent变量。 修改nginx.conf [?][Link 1] <table> <tbody> <tr> <td> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> </td> <td> <p><code>if ($http_user_agent ~* (Wget|ab) ) { </code></p> <p><code> </code><code>return 403;</code></p> <p><code>}</code></p> <p><code> </code> </p> <p><code>if ($http_user_agent ~* LWP::Simple|BBBike|wget) { </code></p> <p><code> </code><code>return 403;</code></p> <p><code>}</code></p> </td> </tr> </tbody> </table> 重启nginx [?][Link 1] <table> <tbody> <tr> <td> <p>1</p> </td> <td> <p><code># /usr/local/nginx-1.7.0/sbin/nginx -s reload</code></p> </td> </tr> </tbody> </table> [Nginx]: https://www.jb51.net/article/77823.htm [Link 1]: https://www.jb51.net/article/77823.htm# [201611193910616.jpg _474_193]: https://files.jb51.net/file_images/article/201601/201611193910616.jpg?201601193919
还没有评论,来说两句吧...