概述
背景:
继上篇Linux安装Mysql8.0难题之后,作为后端的我又遇到了做内网转发的难题,因为实在银行做业务,所以比较谨慎,这次让我做三台服务器的转发:大致流程,附下图:
具体nginx 的功能什么反向代理,负载均衡我就不一一列举,因为最近为了它我查了太多的资料,都快搞混了,具体可以百度一下。
nginx安装
这里讲述在Linux服务器上安装,首先下去官网下载一个nginx
- 安装依赖包:(需使用root用户安装)
yum install -y pcre-devel zlib-devel openssl-devel gcc*
- 解压nginx
tar -xzvf /usr/nginx-1.18.0.tar.gz -C /usr
新建文件夹
mkdir /usr/nginx
- 安装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
就这样找了两天的问题竟然在这卡住就解决了,不过我还是收获颇丰的,在此提醒一下几点:
- 首先先在两台服务器ping 一下IP地址是否连通
- telnet ip地址 端口号 (如果是银行或者大的企业可以执行以下看看是不是他们内部策略没有开通)
- 最后记得改完nginx.conf记得要重启nginx,cd到sbin下执行 ./nginx -s reload 命令重新启动
最后我终于解决了这个难题 希望可以帮助无助的你!
最后
以上就是眯眯眼猫咪为你收集整理的nginx三台服务器做转发,转发至java程序服务器(预防踩坑)nginx安装的全部内容,希望文章能够帮你解决nginx三台服务器做转发,转发至java程序服务器(预防踩坑)nginx安装所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复