个人博客网:https://wushaopei.github.io/ (你想要这里多有)
一、应用原理解析-- 负载均衡
、
当用户访问量非常大时,我们需要使用多台Tomcat来构成集群,由Nginx负责将负载分摊到每一台Tomcat服务器上。
二、协调 -- Tomcat集群搭建
搭建Tomcat集群的基本思路是把Tomcat解压目录复制多份,然后让每一份Tomcat分别使用不同端口号即可。启动时分别进入自己的bin目录执行startup.sh即可。需要修改端口号的文件是server.xml,具体位置如下:
x 22 <Server port="8005" shutdown="SHUTDOWN">
71 <Connector port="8080" protocol="HTTP/1.1"
93 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
三、Nginx简介
产地 | 俄罗斯 |
---|---|
父亲 | Igor Sysoev |
开发语言 | C |
生日 | 第一个公开版本0.1.0发布于2004年10月4日 |
特长 | 能够支撑5万并发,CPU、内存资源占用小,运行稳定 |
四、Nginx 的安装
1、下载
Linux:CentOS 7.3 64位
Nginx:nginx-1.13.1
安装目录:/usr/local/
wget http://nginx.org/download/nginx-1.13.1.tar.gz
或者 本地上传
2、准备工作
需要gcc-c++支持,如果未安装,则执行yum install -y gcc-c++
①拍pcre安装前快照
②执行三个操作
Opt目录下创建 nginx_envir.sh
③将以下三个安装命令复制粘贴
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
④用./nginx_envir.sh执行加载插件
3、编译安装
【1】第一步:创建目录
mkdir -p /var/temp/nginx/client
【2】第二步:上传并解压
tar -zxvf nginx-1.8.0.tar.gz
【3】第三步:生成 Makefile 文件
进入解压目录
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注解:
【4】第四步:编译
make
【5】第五步:安装
make install
4、启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
5、效果
6、防火墙配置 --- 安全策略
【1】启动防火墙
sudo systemctl start firewalld.service
【2】允许 HTTP 和 HTTPS 传输
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
【3】在浏览器中输入服务器ip地址,看到类似 Welcome to nginx
字样,则表示安装成功
五、Nginx服务器基本操作
操作 | 命令 | 备注 |
---|---|---|
启动 | /usr/local/nginx/sbin/nginx | |
退出 | /usr/local/nginx/sbin/nginx -s quit | 正常关闭Nginx,推荐使用 |
停止 | /usr/local/nginx/sbin/nginx -s stop | 相当于杀死Nginx进程,不推荐使用 |
重启 | /usr/local/nginx/sbin/nginx -s quit<br />/usr/local/nginx/sbin/nginx | |
重新加载配置文件 | /usr/local/nginx/sbin/nginx -s reload |
六.反向代理
①正向代理
情景:在一个局域网中,只有一台计算机可以接入互联网。其他计算机通过这台计算机间接接入互联网。
②反向代理
正向代理 | 反向代理 |
---|---|
为浏览器进行代理 | 为服务器进行代理 |
七、负载均衡配置
1、配置域名
使用SwitchHosts工具设置www.balance.com域名到Linux主机地址的对应关系<
2、配置负载均衡
配置的路径
[root@rich conf]# pwd
/usr/local/nginx/conf
117 upstream balance {
118 server 192.168.10.164:8180;
118 server 192.168.10.164:8280;
119 }
120 server {
121 listen 80;
122 server_name www.balance.com;
123
124 location / {
125 proxy_pass http://balance;
126 index index.html index.htm index.jsp;
127 }
128 }
八 .解决重启后找不到pid文件问题
mkdir /usr/local/nginx/logs
修改Nginx配置文件:
#pid logs/nginx.pid; pid /usr/local/nginx/logs/nginx.pid;
问题:解决 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
配置好nginx.pid,使用/usr/local/nginx/sbin/nginx -s reload 重新读取配置文件出错
[root@localhost nginx]/usr/local/nginx/sbin/nginx -s reload
提示 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
[root@localhost nginx]# cd logs
[root@localhost logs]# ls
access.log error.log nginx-access.log nginx_error.log
果然没有/usr/local/nginx/logs/nginx.pid 文件
解决方法:
[root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
以上是解决问题的方案。