nginx三台服务器做转发,转发至java程序服务器(预防踩坑)

背景:

继上篇Linux安装Mysql8.0难题之后,作为后端的我又遇到了做内网转发的难题,因为实在银行做业务,所以比较谨慎,这次让我做三台服务器的转发:大致流程,附下图:
在这里插入图片描述
具体nginx 的功能什么反向代理,负载均衡我就不一一列举,因为最近为了它我查了太多的资料,都快搞混了,具体可以百度一下。

nginx安装

这里讲述在Linux服务器上安装,首先下去官网下载一个nginx

  1. 安装依赖包:(需使用root用户安装)

yum install -y pcre-devel zlib-devel openssl-devel gcc*

  1. 解压nginx

tar -xzvf /usr/nginx-1.18.0.tar.gz -C /usr

新建文件夹
mkdir /usr/nginx

  1. 安装nginx:(使用普通用户执行下面步骤)

进入解压nginx’路径下
cd /usr/nginx-1.18.0/
./configure
–prefix=/usr/nginx/
–with-http_ssl_module
–with-http_gzip_static_module
–with-http_stub_status_module
–with-stream
–with-ipv6
cd /usr/nginx-1.18.0/ && make
cd /usr/nginx-1.18.0/ && make install

4.自启动nginx

添加 vim /app/auto_start.sh配置文件
#vim /usr/auto_start.sh
/usr/nginx/sbin/nginx -c /app/nginx/conf/nginx.conf" #本行追加到auto_start.sh文件最后

5.nginx日志分割及定期清理

Nginx:可参考以下脚本,每天生成一个日志,并删除30天之前的日志;将脚本加入到系统定时任务每天凌晨执行

$ cd /usr/nginx/
$ vim cut_nginx_log.sh
#!/bin/bash
LOGS_PATH=/app/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
KEEPTIME=$(date -d "-30 days" +%Y-%m-%d)
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
kill -USR1 $(cat /app/nginx/logs/nginx.pid)
##delete logs 30 days ago
rm -f ${LOGS_PATH}/access_${KEEPTIME}.log
rm -f ${LOGS_PATH}/error_${KEEPTIME}.log

6.加入到系统定时任务,注意脚本要赋予可执行权限

$ crontab -e
0 0 * * * /usr/nginx/cut_nginx_log.sh

7.使用nginx(使用普通用户执行下面步骤)

/usr/nginx/sbin/nginx -c /usr/nginx/conf/nginx.conf #指定启动加载的nginx配置文件并启动nginx
/usr/nginx/sbin/nginx -s quit #等待nginx进程处理完任务后停止nginx(建议使用)
/usr/nginx/sbin/nginx -s stop #直接停止nginx,相当于kill pid
/usr/nginx/sbin/nginx -s reload #重新加载nginx配置文件
/usr/nginx/sbin/nginx -s quit && /app/nginx/sbin/nginx -c /usr/nginx/conf/nginx.conf #先停止在启动(建议使用)

8.其他运维相关命令

卸载nginx
rm -rf /usr/nginx
ps -ef | grep nginx #查看nginx进程
netstat -anp | grep “nginx主进程号” #查看nginx启动端口
./nginx -t #测试配置是否正确
9.查看nginx安装位置
cd /proc/‘nginx进程号’
ls -ail #查看全部进程详细信息及inode信息
查看exe对应的链接即为程序路径
10.查看系统nginx配置文件目录
locate nginx.conf

结束安装nginx下面进入正题

配置三台服务器,实际上我弄了两天才搞懂,实在是很烦(专业运维勿骂)
首先我先说我上面图片中的配置是完全没问题的,唯一有问题的就是2222服务器到3333服务器的过程,由于3333是java应用服务器,所以需要多配置一个配置,如图:
在这里插入图片描述
要加一个“proxy_set_header”这个配置,具体为什么,我们老大给我的回答是:就是$host不行 得加端口号 不然重定向有问题 302

就这样找了两天的问题竟然在这卡住就解决了,不过我还是收获颇丰的,在此提醒一下几点:

  1. 首先先在两台服务器ping 一下IP地址是否连通
  2. telnet ip地址 端口号 (如果是银行或者大的企业可以执行以下看看是不是他们内部策略没有开通)
  3. 最后记得改完nginx.conf记得要重启nginx,cd到sbin下执行 ./nginx -s reload 命令重新启动

最后我终于解决了这个难题 希望可以帮助无助的你!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值