Nginx配置⼆级⽬录反向代理本机不同端⼝
前序
最近在家⾥的服务器上装了⼀⼤堆的服务器软件,⼤多数都需要Web⽹站访问的,⽐如:Gitlab、Apache、Jenkins等等。然⽽⼜因为是不同的应⽤,需要占⽤不同的端⼝,每次访问起来都需要在IP地址后⾯再加上端⼝号,应⽤太多了就⽼是记不住端⼝了。。这才突然发现遗漏Nginx这个神器。
简介
Nginx 主要的作⽤就是反向代理和负载均衡了,⼀般在互联⽹公司内,作为负载均衡⽐较多。但是别忘了,它的⼀个主要⽤途还有反向代理。在这⾥,我们就通过反向代理来使得隐藏端⼝,⼆级⽬录的形式访问这些服务器应⽤吧。
安装Nginx
如果想要安装最新版本,建议从下载源码,然后编译安装。不过我这⾥偷懒直接使⽤仓库源安装的,这样⼀个⽐较快,⼆个安装⽬录和systemd脚本都弄得好好的,堪称开箱即⽤啊。
Ubuntu/Debian
$ sudo apt-get update
$ sudo apt-get install nginx
反向代理配置
直接编辑nginx配置⽂件即可,⽂件所在位置/etc/nginx/config.f
$ sudo vim /etc/nginx/config.f
upstream gitlab {
# 这⾥我们需要先⼿动修改Gitlab的默认访问端⼝,默认为80
server 192.168.1.2:8098;
}
upstream apache {
server 192.168.1.2:8090;
}
upstream rabbit {
server 192.168.1.2:15672;
}
server {
listen    80;
server_name    localhost;
charset    utf-8;
# 192.168.1.2/file 即可访问apache⽂件服务器
location /file {
proxy_pass apache/;
}
location /rabbit {
proxy_pass rabbit/;
port_in_redirect  on;
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 /jenkins {
proxy_pass 192.168.1.2:8088/jenkins/;
# Fix the "It appears that your reverse proxy set up is broken" error.
# 修复点击系统管理,出现的反向代理设置有误提⽰
port_in_redirect  on;
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;
}
# 直接IP访问就是Gitlab
location / {
proxy_pass gitlab/;
}
}
总结
Nginx是⼀个⾮常强⼤的⼯具,这⾥只是使⽤到了其实很⼩的⼀部分功能。当然也有其他的途径可以做到,但是很少有Nginx这样简单⽅便的。nginx 配置文件
配置的过程中,需要注意的是Jenkins的配置,只配置⼀个proxy_pass的话,它会提⽰代理配置有误,所以需要多加⼀些配置。还有就是通过反向代理配置的Jenkins好像不能登录,会出现跳转到j_acegi_security_check报404错误,因为是⾃⼰家⾥⽤,所以我就直接去掉登录功能了,在Configure Global Security选项中,将启⽤安全钩去掉就好了。
如果有懂这个反向代理怎么登录的,还望不惜赐教。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。