集群、Nginx代理服务器 、 Nginx优化

链接

一,使用nginx搭建网站集群,提高网站并发

并发,能够同时处理用户访问量的重要指标

proxy 192.168.2.5 192.168.4.5
web1 192.168.2.100
web2 192.168.2.200
client 192.168.4.10
检查ip,同网段要互通,检查yum

在web1、web2主机安装常用软件包与网站服务httpd

yum -y install vim bash-completion net-tools httpd psmisc

然后继续准备网站页面

echo "web1~~~~" > /var/www/html/index.html   //创建测试页面,如果是web2主机的话要写web2~~~~
systemctl stop firewalld
systemctl restart httpd
[root@proxy nginx]# curl 192.168.2.100     //然后在proxy主机测试
web1~~~~
[root@proxy nginx]# curl 192.168.2.200
web2~~~~

回到proxy主机:
如果nginx环境混乱,可以重新部署

cd  ~/lnmp_soft/nginx-1.17.6/
killall nginx
rm -rf /usr/local/nginx/
make install     //安装nginx,如果之前没敲过./configure和make要再敲一次
cd /usr/local/nginx/

在proxy主机修改配置实现集群效果

[root@proxy nginx]# vim conf/nginx.conf
upstream web {        //首先是34~37行,创建集群,集群名称叫web
server  192.168.2.100:80;   //这里是集群中的服务器ip与端口
server  192.168.2.200:80;   //第二台集群主机
}
server {
    listen       80;
    。。。。
    location / {
            proxy_pass  http://web;     //在第47行,调用集群
            root   html;
            index  index.html index.htm;
    }
}

之后开启nginx或者重加载nginx配置,用curl 192.168.2.5可以看到 web1 或web2页面轮询出现

二,集群优化

1,调节集群主机任务量分配

server 192.168.2.200:80 weight=2;   //为性能较强的集群主机配置权重,权重越大任务量越大
sbin/nginx   -s   reload    //修改配置后,重加载
[root@proxy nginx]# curl 192.168.2.5   //多次访问,发现web2的任务量增加
web2~~~~
[root@proxy nginx]# curl 192.168.2.5
web2~~~~
[root@proxy nginx]# curl 192.168.2.5
web1~~~~

2,配置健康检查

server 192.168.2.200:80 max_fails=2 fail_timeout=30;   //检测两次如果失败,则认为集群中的主机故障,之后等待30秒再次测试
sbin/nginx -s reload    //测试时,先将web2的httpd服务关闭,回到proxy访问集群页面curl 192.168.2.5只会显示web1的页面,此时即使将web2的httpd服务开启也无效,因为要等待30秒

3,相同客户机访问相同服务器

upstream web {
ip_hash;   //相同客户机访问相同服务器,让一个客户机访问集群时锁定一个后台服务器,避免重复登陆的问题
server 192.168.2.100:80;
server 192.168.2.200:80 max_fails=2 fail_timeout=30;  //max_fails检测链接80端口2次,fail_timeout等待30秒
}
sbin/nginx -s reload
curl 192.168.2.5    //重加载配置后访问2.5只会看到一个网站的页面

4,添加down标记

upstream web {
ip_hash;
server 192.168.2.100:80;
server 192.168.2.200:80 down;    //down标记可以让集群主机暂时不参与集群活动
}

sbin/nginx -s reload
curl 192.168.2.5

nginx 搭建网站 ,网站代理,四层代理

三,使用nginx创建其他业务集群

sbin/nginx -s stop
killall nginx
cd ~/lnmp_soft/nginx-1.17.6/
rm -rf /usr/local/nginx/
./configure --with-stream --with-http_stub_status_module  //这里的--with-stream 是添加四层代理模块,可以用来创建其他业务集群
make    //编译
make install    //安装
sbin/nginx -V

打开nginx主配置文件,在16行左右(http上面),添加以下内容

stream {         //创建新业务
upstream backend {    //创建名叫backend的集群
server 192.168.2.100:22;    //集群中的主机使用22端口对外提供服务
server 192.168.2.200:22;
}
server {
listen 12345;    //监听端口号
proxy_pass backend;    //调用集群
}
}

sbin/nginx   //配置写好之后开启服务或者重加载配置文件
ssh  192.168.2.5 -p 12345    //尝试远程登录,第一次可能会连接集群的某一台主机比如web1
exit    //退出
[root@proxy nginx]# rm -rf ~/.ssh/known_hosts   //删除记录文件
ssh  192.168.2.5 -p 12345   //再次尝试登录,会连接到另外一台集群主机

ss命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)
注意:在RHEL7系统中可以使用ss命令替代netstat命令,功能一样,选
项一样。

四,常见nginx问题处理

1,404报错
首先修改配置文件

error_page  404     /test.jpg;  //如果客户访问了不存在的页面就显示test.jpg的内容
sbin/nginx -s reload   //重加载配置然后找一个图片扔到/usr/local/nginx/html里面,命名为test.jpg,使用浏览器虽随意访问不存在的页面192.168.2.5/XXXX.html   就可以看到之前那张图片的内容
//如果真机是windows可以用mobaXterm传test.jpg文件到nginx的html目录
//如果真机是linux可以用scp命令

2,查看网站后台数据(重要功能)

--with-http_stub_status_module   //该功能利用的模块,之前配置nginx已经安装

打开配置文件

location /status  {   //在error_page行上面添加此内容
stub_status on;
}

sbin/nginx -s reload    //重加载配置

修改Nginx配置文件,定义状态页面

location /status  {   //在error_page行上面添加此内容
stub_status on;
allow 192.168.2.5;  //只允许192.168.2.5IP访问status状态
deny all;    //拒绝所有IP地址访问status状态
}

sbin/nginx -s reload    //重加载配置

使用浏览器查看 192.168.2.5/status
Active connections:当前活动的连接数量(当前有多少用户访问该网站)。
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量。
Requests:客户端发送的请求数量。
Reading:当前服务器正在读取客户端请求头的数量。
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的响应。

五,浏览器本地缓存静态数据

1,以Firefox浏览器为例,在Firefox地址栏内输入about:cache将显示Firefox浏览器的缓存信息,如图-1所示,点击List Cache Entries可以查看详细信息。

图片-1

2,清空firefox本地缓存数据,如图-2所示。

图片-2

3,修改Nginx配置文件,定义对静态页面的缓存时间

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {    //~使用正则表达式,*忽略大小写,\转义符,以.jpg或.gif或...,$结尾
expires        30d;            //定义客户端缓存时间为30天
}
}
[root@proxy ~]# cp /usr/share/backgrounds/day.jpg /usr/local/nginx/html
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
//请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
//[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

4,优化后,使用Firefox浏览器访问图片,再次查看缓存信息

[root@client ~]# firefox http://192.168.4.5/day.jpg

在firefox地址栏内输入about:cache,查看本地缓存数据,查看是否有图片以及过期时间是否正确。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容