nginx反向代理配置

前言:
如今信息时代,对于web服务器的要求很高,既要性能,又要稳定性,又经济最好免费,还要满足公司的各大奇葩业务需求,越来越挑剔,互联网上主流的web服务器有 nginx, Apache, Squid, IIS, kangle, WebSphere,WebLogic, Tomcat, Jboss, TrafficServer等等, 我玩过的就nginx,Apache, TrafficServer三款,其它不熟, Apache由于不可扩展,不可定制,固满足不了公司一些需求,TrafficServer 开源产品 c++编写,功能强大,可搭建集群,国人用得不多,知道的人也不多,大公司在用(阿里),小公司用不起,bug太多,难维护, Nginx现在用的人越来越多

优点如下:

       1.模块化的功能集,第三方模块丰富,占用资源小,稳定性强,

       2.可扩展性强,官方文档资料全,安装配置简单,官方代码贡献者活跃,不断有更新,

       3.Nginx从头开始都是纯C实现,采用多进程和异步机制(异步非阻塞),内存消耗极小,官方统计,单台能达到50000并发请求量。

       4.支持负载均衡,跨平台,能满足公司很多需求。

使用两台虚拟机一台安装nginx,一台安装lamp架构

nginx: 192.168.154.131
没有做反向代理之前
在这里插入图片描述
lamp: 192.168.154.171
在这里插入图片描述

一、安装nginx所需要的依赖库

 yum install -y gcc gcc-c++ pcre-devel zlib-devel

二、如有安装老版本,则卸载

查看:find -name nginx

卸载:yum remove nginx

三、下载nginx源码并解压.(源码去官网下载, 以下是官方链接)

wget -c http://nginx.org/download/nginx-1.6.2.tar.gz

tar -zxvf nginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx \

--with-http_addition_module \

--with-http_flv_module --with-http_gzip_static_module \

--with-http_realip_module --with-http_ssl_module \

--with-http_stub_status_module --with-http_sub_module \

--with-http_dav_module

make && make install

四、建立nginx用户及用户组

useradd -M -s /sbin/nologin nginx

cd 到nginx目录,看能否启动
sbin/nginx #如果没有报错,说明ok

ps ax | grep nginx
2537 ? Ss 0:00 nginx: master process sbin/nginx
2538 ? S 0:00 nginx: worker process

nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

查看安装的nginx版本:
sbin/nginx -v
查看安装的编译选项:
sbin/nginx -V

五、下面开始配置nginx,及反向代理,编辑配置文件nginx.conf
vim /usr/local/nginx/conf/nginx.conf
主要修改反向代理路径

#运行用户
#user somebody;
 
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;
 
#全局错误日志
error_log  D:/Tools/nginx-1.10.1/logs/error.log;
error_log  D:/Tools/nginx-1.10.1/logs/notice.log  notice;
error_log  D:/Tools/nginx-1.10.1/logs/info.log  info;
 
#PID文件,记录当前启动的nginx的进程ID
pid        D:/Tools/nginx-1.10.1/logs/nginx.pid;
 
#工作模式及连接数上限
events {
    worker_connections 1024;    #单个后台worker process进程的最大并发链接数
}
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #设定mime类型(邮件支持类型),类型由mime.types文件定义
    include       D:/Tools/nginx-1.10.1/conf/mime.types;
    default_type  application/octet-stream;
    
    #设定日志
    log_format  main  '[$remote_addr] - [$remote_user] [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
                      
    access_log    D:/Tools/nginx-1.10.1/logs/access.log main;
    rewrite_log     on;
    
    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile        on;
    #tcp_nopush     on;
 
    #连接超时时间
    keepalive_timeout  120;
    tcp_nodelay        on;
    
    #gzip压缩开关
    #gzip  on;
 
    #设定实际的服务器列表 
    upstream zp_server1{
        server 127.0.0.1:8089;
    }
 
    #HTTP服务器
    server {
        #监听80端口,80端口是知名端口号,用于HTTP协议
        listen       80;
        
        #定义使用www.xx.com访问
        server_name  www.helloworld.com;
        
        #首页
        index index.html
        
        #指向webapp的目录
        root D:\01_Workspace\Project\github\zp\SpringNotes\spring-security\spring-shiro\src\main\webapp;
        
        #编码格式
        charset utf-8;
        
        #代理配置参数
        proxy_connect_timeout 180;
        proxy_send_timeout 180;
        proxy_read_timeout 180;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarder-For $remote_addr;
 
        #反向代理的路径(和upstream绑定),location 后面设置映射的路径
        location / {
            proxy_pass http://192.168.154.171;
        } 
 
        #静态文件,nginx自己处理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            root D:\01_Workspace\Project\github\zp\SpringNotes\spring-security\spring-shiro\src\main\webapp\views;
            #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
            expires 30d;
        }
    
        #设定查看Nginx状态的地址
        location /NginxStatus {
            stub_status           on;
            access_log            on;
            auth_basic            "NginxStatus";
            auth_basic_user_file  conf/htpasswd;
        }
    
        #禁止访问 .htxxx 文件
        location ~ /\.ht {
            deny all;
        }
        
        #错误处理页面(可选择性配置)
        #error_page   404              /404.html;
        #error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   html;
        #}
    }
}

保存退出!

nginx平滑重启:nginx -s reload #重载
nginx #启动nginx服务

六、测试:

做过反向代理之后:
nginx:192.168.154.131
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值