最近公司项目需要用到Nginx做反向代理以及负载均衡。由于之前一直用的是Apacche,Nginx没有怎么接触过。网上搜了下,资料还挺多,然后根据各种资料,在本机实际操作了下,总体感觉Nginx配置还是挺简单的,我主要的工作还是花在Linux基础包的安装和配置上。
一、Nginx安装
1、操作系统
Redhat Linux 6.4,安装并运行Nginx;
Windows7,运行WEB应用程序;
2、安装GCC编译器
检查Linux是否已安装gcc,使用命令
find / -name gcc
如未安装gcc,则先安装gcc,使用命令
yum install gcc gcc-c++
3、下载并安装Nginx的安装包
本人用的安装包版本是:zlib-1.2.8.tar.gz,pcre-8.36.tar.gz,openssl-1.0.2d.tar.gz
Zlib:
解压:tar–zxvf zlib-1.2.8.tar.gz
进入:cd zlib-1.2.8
配置:./configure
编译:make
安装:make install
Pcre:
解压:tar–zxvf pcre-8.36.tar.gz
进入:cd pcre-8.36
配置:./configure
编译:make
安装:make install
Openssl:
解压:tar–zxvf openssl-1.0.2d.tar.gz
进入:cd openssl-1.0.2d
配置:./config
编译:make
安装:make install
4、安装Nginx
下载此安装包nginx-1.8.0.tar.gz
Nginx:
至你的指定目录解压:tar–zxvf nginx-1.8.0.tar.gz
进入:cd nginx-1.8.0
配置:./configure
编译:make
安装:make install
增加软连接:
执行ls /lib64/ | grep pcre
会显示如下信息:
libpcre.so.0
libpcre.so.0.0.1
然后添加软连接:
执行命令ln -s /lib64/libpcre.so.0.0.1 /lib64/libpcre.so.1
启动:进入/usr/local/nginx/sbin/目录,运行命令:./nginx
停止:pkill -9 nginx
也可查看进程直接杀进程
ps–ef | grep nginx(查看进程号),kill -9 进程号
5、验证安装是否完成
Nginx默认使用80端口,在conf下的nginx.conf中可以查看和修改端口。
在浏览器中输入http://ip,会出现Welcome欢迎界面。
如果访问出现404错误,请检查下防火墙是否关闭
二、反向代理配置
直接打开nginx.conf文件修改相关配置。
本人在配置的时候使用了部分负载均衡的配置,由于只有一台Server,所以相当于单机的反向代理
#负责压缩数据流
gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/x-javascript;
#设定负载均衡服务器列表
#weight 参数表示权重
upstream balance_test{
server 192.168.205.143:8089 weight=1;
}
server {
listen 8081;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#设定查看Nginx状态的地址
#location /nginxstatus{
# stub_status on;
# access_log on;
# auth_basic "nginxstatus";
# auth_basic_user_file htpasswd;
#}
root html;
index index.html index.htm index.jsp;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://balance_test; #设置代理,和upstream名字一致
#反向代理的优化配置
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
按照如上配置修改完成后,重新启动Nginx,即可通过Nginx代理服务器访问Server。
直接访问应用服务器应用:http://192.168.205.143:8089/card/
通过代理访问服务器应用:http://192.168.205.165:8081/card/