nginx应用 | 反向代理,统一鉴权,目录重定向
2022/1/6 7:07:57
本文主要是介绍nginx应用 | 反向代理,统一鉴权,目录重定向,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述
nginx的作用不在此赘述,下面主要记录部分简单的使用场景
适用场景:
- 统一鉴权
- 目录重定向
- 绝对相对路径
- 服务处于NAT后(外部端口和内部端口不一致)
非适用场景:
- 不同端口区分不同服务,参考创建即可
软件
安装软件:需要使用apache2-utils中的htpasswd
sudo apt-get install nginx sudo apt install apache2-utils
查看服务状态: +
号说明服务处于up状态
service --status-all ...... [ + ] nginx ......
修改配置:具体如何修改见后面章节
sudo vi /etc/nginx/sites-enabled/default
重启nginx服务:修改配置后,需要重启nginx
service nginx restart
场景
统一鉴权 | 目录重定向 | 绝对和相对路径
使用要求:
- 外网服务器仅开放一个端口9999,该端口需要实现多种web服务
- web服务需要进行鉴权服务
设计要求:
- 上面的需求可以通过nginx反向代理实现
- 需要配置服务器,使外部端口9999映射到nginx服务器的8081端口(8081端口可以按需自定义)
- 通过访问不同的url实现访问不同的服务(如下表)
- 鉴权方式可以使用htpasswd来实现
- 为了跳转正常,有的需要绝对目录有的需要相对目录
外部URL | NAT处理 | 内部URL |
---|---|---|
http://$wanip:9999/source/ |
http://$nginxip:8081/source/ |
鉴权成功 --> 打开http://$hostip:666/xxx |
http://$wanip:9999/git/xxx |
http://$nginxip:8081/git/xxx |
鉴权成功 --> 打开http://$hostip:777/git/xxx |
- $wanip: 外部IP地址
- 9999:外部端口
- $nginxip:外部映射到内部的nginx地址(多数应用或路由器都可以配置)
- 8081:外部映射到内部的端口(多数应用或路由器都可以配置)
- $hostip:内网部署的服务地址,可以是在不同的服务器上
- 666或777:内网部署的服务端口
nginx配置: /etc/nginx/sites-enabled/default
文件内容
server { listen 8081; server_name localhost; location ^~ /source/ { auth_basic "source"; auth_basic_user_file /home/wsk/htpasswd.conf; proxy_pass http://127.0.0.1:666/; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; } location ^~ /git/ { auth_basic "git"; auth_basic_user_file /home/wsk/htpasswd.conf; proxy_pass http://127.0.0.1:777; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; } }
因为条件有限,下面的例子,并不包含NAT的过程。如果服务处于NAT后,上面的配置需要做如下变更:其中9999
对应的是外部的端口
proxy_set_header Host $host:9999;
增加账号:
touch htpasswd.conf (首次执行必选) htpasswd -b htpasswd.conf $usrname $passwd
创建source对应的服务:
- 以开源代码simple-tftp为例,通过doxygen生成html(doxygen如何使用,见我的博客), html存放路径:
wsk@wsk:~/nginx/source/simple-tftp/html
- 通过python创建http服务:
sudo python3 -m http.server 666
(首先需要cd到上面目录中)
创建git对应的服务:
- 以开源代码simple-tftp为例,直接通过创建http服务
sudo python3 -m http.server 777
- git服务使用的相对路径,所以创建http服务的路径必须包含git目录
不带路径访问
带路径访问
访问source: 第一次访问的时候,会先进行鉴权,当鉴权成功后才能继续访问重定向的网站
访问git服务: 如果第一次访问source已经输入过密码了,这次访问git就不需要再次输入。
参考
- digitalocean/nginxconfig.io: ⚙️ NGINX config generator on steroids
这篇关于nginx应用 | 反向代理,统一鉴权,目录重定向的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享