为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。
环境准备
123.57.241.122 代理服务器
47.97.90.120 静态资源
106.12.193.2 动态资源
1.nginx代理服务器
123.57.241.122
配置nginx反向代理upstream
[root@one conf.d]# pwd
/etc/nginx/conf.d
[root@one conf.d]# cat upstream.conf
upstream static {
server 47.97.90.120:80 weight=1 max_fails=1 fail_timeout=60s;
}
upstream phpserver {
server 106.12.193.2:80 weight=1 max_fails=1 fail_timeout=60s;
}
server {
listen 80;
server_name localhost;
#动态资源加载
location ~ \.(php|jsp)$ {
proxy_pass http://phpserver;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#静态资源加载
location ~ .*\.(html|gif|jpg|png|bmp|swf|css|js)$ {
proxy_pass http://static;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2.静态资源
47.97.90.120
[root@two conf.d]# cat /etc/nginx/conf.d/static.conf
server {
listen 80;
server_name localhost;
location ~ \.(html|jpg|png|js|css|gif|bmp|jpeg) {
root /home/www/nginx;
index index.html index.htm;
}
}
[root@two conf.d]# mkdir /home/www/nginx -p
[root@two conf.d]# echo "hello jingtai" > /home/www/nginx/index.html
[root@two conf.d]# cat /home/www/nginx/index.html
hello jingtai
3.动态资源
106.12.193.2
yum 安装php7.1
[root@three ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[root@three ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@three ~]# yum install php71w-xsl php71w php71w-ldap php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php71w-mcrypt -y
[root@three ~]# yum install -y php71w-fpm
[root@three ~]# systemctl start php-fpm
编辑nginx的配置文件
[root@three conf.d]# cat /etc/nginx/conf.d/phpserver.conf
server {
listen 80;
server_name localhost;
location ~ \.php$ {
root /home/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@three conf.d]# mkdir /home/nginx/html -p
[root@three conf.d]# echo "hello dongtai" > /home/nginx/html/index.php
[root@three conf.d]# cat /home/nginx/html/index.php
hello dongtai