nginx反向代理配置(nginx应用)

 2025-08-11 16:12:01  阅读 305  评论 0

摘要:概述nginx的作用不在此赘述,下面主要记录部分简单地使用场景。以下基于“ubuntu 18.04 server”版本验证。适用场景:统一鉴权目录重定向绝对相对路径服务处于NAT后(外部端口和内部端口不一致)非适用场景:不同端口区分不同服务,参考创建即可软件安装软件:需要使用apache

概述

nginx的作用不在此赘述,下面主要记录部分简单地使用场景。以下基于“ubuntu 18.04 server”版本验证。

适用场景:

统一鉴权目录重定向绝对相对路径服务处于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;
        }
}

注意:

1.因为条件有限,上面的配置,并不包含NAT的过程。如果服务处于NAT后,上面的配置需要做如下变更:其中9999对应的是外部的端口

                 proxy_set_header Host $host:9999;

2.location ^~中的^~为匹配前缀路径,详见参考

增加账号:

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 777git服务使用的相对路径,所以创建http服务的路径必须包含git目录

带路径访问

访问source: 第一次访问的时候,会先进行鉴权,当鉴权成功后才能继续访问重定向的网站

nginx应用 | 反向代理,统一鉴权,目录重定向

访问git服务: 如果第一次访问source已经输入过密码了,这次访问git就不需要再次输入。

nginx应用 | 反向代理,统一鉴权,目录重定向

参考

nginx反向代理proxy_pass绝对路径和相对路径 - 简书一文彻底读懂nginx中的location指令 - 知乎

提示

为了更好的阅读体验,建议访问个人首发地址: nginx应用 反向代理,统一鉴权,目录重定向 - whilewell - 博客园

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【nginx反向代理配置(nginx应用)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2065813.html

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0491秒, 内存占用1.91 MB, 访问数据库24次

陕ICP备14005772号-15