隨着微服務的也來越多,每一個服務都有單獨的文檔,那麼問題來了,怎麼把全部文檔整合在一塊兒呢html
本方法採用服務器攔截的方式進行處理nginx
首先須要在opt 的主目錄中 /opt/ 建立一個新文件 htpasswd
此文件的書寫格式是
用戶名:密碼
每行一個帳戶
而且 密碼必須使用函數 crypt(3) 加密
官方檔說 能夠用 Apache 的 htpasswd 工具來建立密碼文件
[root@localhost /]# htpasswd
-bash: htpasswd: command not found
[root@localhost /]#
若是上述提示則須要安裝httpd
yum install httpd
安裝好後執行以下命令
htpasswd -c /opt/nginxpwd user
New password:123456
Re-type new password:123456
Adding password for user ngin
生成用戶密鑰文件爲nginxpwd 用戶名爲user 密碼爲123456
密碼文件生成好後,在 nginx.conf 文件中對應的 server 段中 添加以下內容
auth_basic "Welcome Back! GUOYU!";
auth_basic_user_file /opt/nginxpwd;
若是想限制某一個目錄的話須要以下配置:
location ^~ /test/ {
auth_basic "TEST-Login!";
auth_basic_user_file /opt/nginxpwd;
}
若是 不用 ^~ /test/ 而用 /test 的話 那麼將只能對目錄進行驗證直接訪問其下的文件,將不會彈出登陸驗證
重啓Nginx服務,使配置生效
或者 ./nginx -s reloadapi
#dms server
location ~ /.*/swagger-ui.html.* {
#密碼登陸
auth_basic "接口文檔";
auth_basic_user_file /opt/nginxpwd;
# 不一樣的路徑進入到不一樣地址,還不知道怎麼改爲一個通配符,自動填充
if ( $uri ~ /smsapi/.* ) {
proxy_pass http://smsapi;
}
if ( $uri ~ /find/.* ) {
proxy_pass http://find;
}
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location = /swagger-ui.html {
#密碼登陸
auth_basic "宥馬接口文檔";
auth_basic_user_file /opt/nginxpwd;
root /fileDir;
index swagger-ui.html;
}bash