本教程采用1台转发服务器和2台应用服务器(硬件配置相同)作为示例,系统均为CentOS7.4,网址为https://blog.yufuping.com
,转发服务器为443端口,内网转发到应用服务器的80端口。本教程采用权重策略,其他策略可参考网络资料。
第一步,安装转发Nginx
安装gcc
1 | yum install gcc gcc-c++ |
安装pcre
1 | yum install -y pcre pcre-devel |
安装zlib
1 | yum install -y zlib zlib-devel |
安装openssl
1 | yum install -y openssl openssl-devel |
下载
1 | wget https://nginx.org/download/nginx-1.15.3.tar.gz |
解压
1 | tar -zxvf nginx-1.15.3.tar.gz |
进入目录
1 | cd nginx-1.15.3 |
编译nginx1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-stream
这里的--with-stream
stream模块是为了配置负载均衡转发,应用服务器安装nginx可以不加。
安装nginx1
make && make install
第二步,配置转发Nginx
在nginx.conf中http
内配置upstream
,此处以blog.yupoxiong.com
域名为示例。1
2
3
4upstream blog.yupoxiong.com {
server 172.20.20.2:80 weight=1; #第一个服务器
server 172.20.20.3:80 weight=1; #第二个服务器
}
weight
为权重,如果机器配置不均衡,可以调整weight参数。例如第2台机器的配置为第1台机器的2倍,那就可以把第2台的weight
改成2。
server
内配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16server {
listen 443 ssl;
server_name blog.yupoxiong.com;
ssl_certificate cert/blog.yupoxiong.crt;
ssl_certificate_key cert/blog.yupoxiong.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://blog.yupoxiong.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
第三步,正常安装配置应用服务器Nginx和PHP即可
应用服务器nginx可以和转发服务器使用相同的命令,然后正常配置nginx.conf即可,以下为PHP的安装教程。
安装php依赖1
yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
下载php7.21
http://cn2.php.net/get/php-7.2.10.tar.gz/from/this/mirror
解压
1 | tar -zxvf mirror |
进入目录1
cd mirror
编译php1
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-openssl --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl --enable-bcmath
安装1
make && make install
配置文件1
cp php.ini-production /usr/local/php/php.ini
php.ini开启错误显示1
display_errors = On
复制启动脚本:1
2cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
修改php-fpm配置文件:1
2
3cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
去掉 pid = run/php-fpm.pid 前面的分号1
2
3cd php-fpm.d
cp www.conf.default www.conf
vim www.conf
修改user和group的用户为当前用户(也可以不改,默认会添加nobody这个用户和用户组)
【启动PHP】1
2
3
4/etc/init.d/php-fpm start #php-fpm启动命令
/etc/init.d/php-fpm stop #php-fpm停止命令
/etc/init.d/php-fpm restart #php-fpm重启命令
ps -ef | grep php 或者 ps -A | grep -i php #查看是否已经成功启动PHP