阿里P8的架构实践之Nginx实践

80 篇文章 0 订阅
55 篇文章 0 订阅

背景介绍: 阿里云,512M内存(最屌丝配置),搭建lamp 环境,除去 mysql分配了100M左右(这个不能再少了),http竟然占用了200多M,太庞大,决定换为较轻量级,高并发的nginx。

背景数据

如下图所示:系统也就500M ,出了mysql占用的100M, httpd 占了1/2 还多(经常达到十几个进程),剩余50M,有时更少不能忍,经常造成数据库崩掉,写了个自动重启脚本,但觉的不是治本之策

# 统计apache 进程个数
ps aux|grep httpd | wc –l

ngnix 服务器占用

解决策略

  • 1:针对Apache进行优化。包括优化worker运行方式等等。可以参考 apache优化
  • 2 :更换轻量级服务器。采用nginx 或者lighthttpd等更轻量的服务器。传说中Nginx大法负载均衡和高并发略胜一筹,决定实践一把。

apache替换为nginx

  • 1: 停掉apache
    sudo service httpd stop

    注意:以防万一,最好不好提前卸掉。

  • 2:安装nginx
    yum install nginx

  • 3:启动nginx
    sudo nginx

    安装成功之后,启动成功如下图CB5A50FB-8B68-4F21-A6F4-BDC7AF6C93B2

  • 4:简单配置nginx
    主要是简单修改下log【方便追查问题】 和 web_root 对应文件【快速启用网站】
  • 5:重启nginx
    [root@iZ25xlozdf2Z nginx]# nginx -s quit
    [root@iZ25xlozdf2Z nginx]# nginx

    如下图,配置web目录成功!BAEF603F-CA9C-436E-B870-3E70C11542D0

  • 6:添加php 支持
    安装php-fpm
    yum install php-fpm

    nginx.conf设置
    location ~ .php$ {

    root /var/www/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME         /var/www/html$fastcgi_script_name;
    include fastcgi_params;
    

    }

  • 7:重新启动服务,网站回复。

  • 8:耗存简单对比 如下图:基本上节省了200M,虽然这个可能是运行初期数据;但是,还是确实轻了不少,每个服务占存基本上1/4,线程也少了不少。内存占用方面表现,感觉尚可,接下就看性能了E773D2EE-2F51-4113-AAE1-939CD88DCAEE

nginx替换apache之后,需要进行两个基本设置,一是:域名绑定和重定向,防止盗链,死链,参考文章 apache 防盗链 ;二是:设置多个端口,一个端口显然无法满足需求。

域名防盗链设置

域名防盗链主要通过,设定服务器域名,非域名重定向到现有域名(相对于之前的黑名单,我太单纯了,流量可以重定向利用一下)。

配置nginx.conf

 
    
1
2
3
4
5
6
7
8
 
    
# default 默认只能server_name 访问
listen 80 default ;
server_name cuihuan.net;
# 重定向
if ( $host != "cuihuan.net") {
rewrite ^/(.*)$ http://cuihuan.net/ $1 permanent;
}

解释:首先80端口默认只能域名访问 ,默认的域名cuihuan.net。 对于所有非cuihuan.net 的过来的数据直接引流的cuihuan.net。如下图【这个战斗力为五的渣渣还挂在我的页面】

4BF263AE-6ACD-4634-9000-795C0FB5F323

进行了转码后还可以避免搜索引擎抓的域名出现死链。

18AC69FB-9C9D-4CE6-8D9A-8F3BFC40D75C

配置多端口:

这个就简单了,直接把上面配置好的server copy一个挂上其他web服务或者phpadmin等等

 
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
    
server {
listen 8002 default ;
server_name cuihuan.net;
if ( $host != "cuihuan.net") {
rewrite ^/(.*)$ http://cuihuan.net/ $1 permanent;
}
location / {
root /var/www/weixin;
index index.php;
}
location ~ \.php$ {
root /var/www/weixin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/weixin $fastcgi_script_name;
include fastcgi_params;
}
# set nginx stutus
location /NginxStatus{
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
#set deny all file
error_page 404 / 404.html;
location = /var/www/wordpress/40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /home/www/wordpress/50x.html {
}
}

对于nginx搭建小网站来说,这个是基本的配置。个人感觉相对于之前 apache 防盗链配置 来说难易差不多。

具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加群。在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加群。如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的可以加群。java架构群:591240817 一起交流。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值