首页 > 其他分享 >Nignx 反向代理

Nignx 反向代理

时间:2023-02-09 14:00:54浏览次数:39  
标签:http filebrowser nginx -- 代理 Nignx fb 反向 usr

编译源码包

准备安装编译所用的依赖和工具

$ sudo yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel wget pcre pcre-devel git

解压并安装

$ ls -l nginx-1.20.2.tar.gz 
$ tar -zxvf nginx-1.20.2.tar.gz
$ cd nginx-1.20.2/
# 这里开始编译指定功能,--help可以查看开启或关闭哪些模块
# 这里开启了https需要的ssl模块和nginx 状态查看模块
$ ./configure --with-http_ssl_module --with-http_stub_status_module
# 编译成文件 并且 拷贝到指定目录,默认拷贝到/usr/local/nginx
$ make && make install
$ ls /usr/local/nginx
# 执行并测试
$ /usr/local/nginx/sbin/nginx
# 查看nginx端口
$ sudo lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 907 root 6u IPv4 30218 0t0 TCP *:http (LISTEN)
nginx 908 nobody 6u IPv4 30218 0t0 TCP *:http (LISTEN)
$ ss -tnl | awk '/80\>/'
LISTEN 0 128 *:80 *:*
$ curl 127.0.0.1
# 关闭nginx服务
$ killall -9 nginx

注意:这里 nginx服务暂通过命令启动和通过kill杀进程来关闭。因此需要一个.service文件来注册成系统服务才便于管理。

配置注册成系统服务

$ vim /etc/systemd/system/nginx.service  
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 然后使用systemd来管理
# 启动服务
$ systemd start nginx
# 查看系统状态
$ ssytemd status nginx
# 关闭服务
$ systemd stop nginx
# 设置开启自动启动
$ systemd enable nginx
# 取消开启自动启动
$ systemd disable nginx

启动一个filebrowser网盘服务

注:一个golang语言编写的http协议的web应用。

#  解压并安装
sudo tar zxvf linux-amd64-filebrowser.tar.gz
sudo cp filebrowser /usr/sbin/
ls -l /usr/sbin/filebrowser
# 使用--help可以查看使用
# 查看选项命和命令
$ /usr/sbin/filebrowser --help
# 查看子命令config的使用
$ /usr/sbin/filebrowser config --help

# 开始配置,写成sh脚本
$ vim setup-fb.sh
# 初始化数据库,-d指定数据库路径
filebrowser -d /data/fb/filebrowser.db config init
# 设定开启路由监听的地址
filebrowser -d /data/fb/filebrowser.db config set --address 0.0.0.0
# 设定开启的端口
filebrowser -d /data/fb/filebrowser.db config set --port 8088
# 语言支持及日志文件指定
filebrowser -d /data/fb/filebrowser.db config set --locale zh-cn
filebrowser -d /data/fb/filebrowser.db config set --log /var/log/filebrowser.log
# 添加网盘的用户及密码
filebrowser -d /data/fb/filebrowser.db users add admin abc123456 --perm.admin
# 设定网盘的上传文件存储路径
filebrowser -d /data/fb/filebrowser.db config set --root /data1/fb

同样注册filebrowser为一个系统服务

$ cat /etc/systemd/system/fb.service  
[Unit]
Description=The fileborwser Process Manager
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/filebrowser -d /data/fb/filebrowser.db
ExecStop=/bin/killall filebrowser
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 然后使用systemd来管理
# 启动服务
$ sudo systemd start fb
# 查看8088端口是否开启
$ ss -tnl | awk '/8088\>/'
LISTEN 0 128 [::]:8088 [::]:*

浏览器访问8088

登录,使用脚本命令里配置的用户密码

Nignx 反向代理_nginx

上传文件

Nignx 反向代理_vim_02

Nignx 反向代理_vim_03


配置http protocol反向代理filebrowser

注意:在http中的server段里配置,location /表示访问网站根目录代理到8088端口,也就是fb服务。

$ sudo vim /usr/local/nginx/conf/nginx.conf
.....
http {
...
server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

# location / {
# root html;
# index index.html index.htm;
# }
location / {
proxy_pass http://127.0.0.1:8088;
# 代理时 添加/改写 请求头部
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
...
}

重启或重载nginx服务

$ sudo systemctl restart nginx

$ sudo systemctl reload nginx

再次访问80端口

Nignx 反向代理_vim_04

再次上传文件测试

上传一个小文件

Nignx 反向代理_nginx_05

再上传一个大文件

Nignx 反向代理_nginx_06

Nignx 反向代理_vim_07

这里上传文件出现错误, 查看nginx日志

$ tail -n 1 /usr/local/nginx/logs/error.log  
2023/02/09 13:42:14 [error] 15737#0: *15 client intended to send too large body: 32233760 bytes, client: 10.0.2.2, server: localhost, request: "POST /api/resources/scrt_sfx801-x64.exe?override=false HTTP/1.1", host: "127.0.0.1", referrer: "http://127.0.0.1/files/"

注:client intended to send too large body: 32233760 bytes,这个提示请求过大,也就是上传的文件过大,在未配置nginx代理通过fb 8088访问是默认无限制,但经过nginx代理却有显示。


在http配置段,server段之前配置最大请求体的大小,这里配置500m:

   client_max_body_size 500m;

$ sudo vim /usr/local/nginx/conf/nginx.conf
..........
http {

include mime.types;
default_type application/octet-stream;


#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

# '$status $body_bytes_sent "$http_referer" '

# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;

keepalive_timeout 65;
#gzip on;

# 在http配置段,server段之前配置最大请求体的大小,这里配置500m
client_max_body_size 500m;

server {
listen 80;
......

配置nginx后重启再测试

$ systemd restart nginx

Nignx 反向代理_nginx_08

这里发现上传成功了,可以查看 /data1/fb 中是否有文件。

$ ls /data1/fb/
scrt_sfx801-x64.exe scrt_sfx801-x86.exe test.txt

                              


标签:http,filebrowser,nginx,--,代理,Nignx,fb,反向,usr
From: https://blog.51cto.com/mengzhaofu/6046910

相关文章

  • 移动端IOS配置whistle代理
    1.官网安装whistle地址https://wproxy.org/whistle/install.html2.移动端使用whistle额外说明移动端需要先下载本地启动的w2startwhistle证书;打开本地电脑的代理地......
  • 真正“搞”懂HTTP协议11之代理服务
    代理,其实全称应该叫做代理服务器,它是客户端与服务器之间得中间层,本质上来说代理就是一个服务器,在HTTP的链路中插入的一个中间环节,就是代理服务器啦。所谓的代理服务就......
  • 动态代理
    动态代理方法:importorg.springframework.util.CollectionUtils;importorg.springframework.util.StringUtils;importjava.lang.reflect.InvocationHandler;importjava......
  • 定义一个函数,实现反向输出一个整数
    defreverse():number=eval(input("请输入一个整数"))a=number//10000b=(number%10000)//1000c=(number%1000)//100d=(num......
  • 关于webpack 开启代理proxy后,接口看不到代理地址的问题。
    今天在项目中发现,  明明在proxy里代理了 接口地址确不是10.10.11.106/front/xxxxxx。这是为啥呢?changeOrigin的修改也是一样,在网络请求中发现host还是没改。这又......
  • Linux配置代理
    临时代理#http代理exporthttp_proxy="http://proxyServer:port/"exporthttp_proxy="socks4://proxyServer:port/"#协议不同#https代理exporthttps_proxy="http......
  • 动态代理-cglib分析
    生成代理类文件的方式jvm添加此启动参数,后面就是代理类class生成的地址-Dcglib.debugLocation=~/baldhead/java/dynamic-proxy-cglib/src/main/java/com/baldhead/dynami......
  • 【OpenCV】- 直方图反向投影
    文章目录​​1引言​​​​2反向投影的工作原理​​​​3反向投影的作用​​​​4反向投影的结果​​​​5计算反向投影:calcBackProject()函数​​​​6通道复制:mixCh......
  • 终端(terminal)代理配置方案
    因为macos的终端在默认情况中,不走代理,只会走本地流量。即使我们使用了系统代理,也无法自动代理到公司内网。但是在利用终端安装一些软件配置一些服务的时候,我们不得不依赖......
  • 【Windows】使用代理后Microsoft Store等UWP应用无法正常运行解决方案(UWP Loopback)
    ✨使用代理后UWP应用无法正常运行使用ClashforWindows后UWP应用无法正常运行✨UWPLoopback使用ClashforWindows中的UWPLoopback勾选需要通过Loopback的UWP应......