Nginx的万剑归宗

1 篇文章 0 订阅
1 篇文章 0 订阅

自从前后端分离后,前端头发也要和你分离了。

前端说,一个接口就要把所有事情都做了。接口我只调一次。用户不想点那么多次。后端说,我写的服务只有登陆接口。可以把整个数据库搬到客户端。

此文章的应用场景:JSP项目向前后端分离项目的方向迁移,慢慢将老服务淘汰的情况

主要讲Nginx的安装与nginx的http的基本使用,Springboot 项目和Tomcat 项目配置运行这里就不写了。

目标:一个nginx 代理如下6个服务

tomcat服务   192.168.32.50:6001;192.168.32.50:6002;192.168.32.50:6003;

Springboot服务1   192.168.32.51:7001;192.168.32.51:7002;

Springboot服务2   192.168.32.52:7001;

Nginx 安装依赖

PCRE 作用是让Nginx支持Rewrite功能。

1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

[root@zgz-nginx home]# cd /home/zgz/software/
[root@zgz-nginx software]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2、解压安装包:

[root@zgz-nginx software]# tar -zxvf pcre-8.35.tar.gz

3、进入安装包目录

[root@zgz-nginx software]# cd pcre-8.35

4、编译安装 

[root@zgz-nginx pcre-8.35]# ./configure
[root@zgz-nginx pcre-8.35]# make && make install

5、查看pcre版本

[root@zgz-nginx pcre-8.35]# pcre-config --version
8.35

安装 Nginx

1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.19.0.tar.gz

[root@zgz-nginx pcre-8.35]# cd /home/zgz/software/
[root@zgz-nginx software]# wget http://nginx.org/download/nginx-1.19.2.tar.gz

2、下载完后解压并进入nginx目录

[root@zgz-nginx software]# tar -zxvf nginx-1.19.0.tar.gz
[root@zgz-nginx software]# cd nginx-1.19.0

3、编译安装,--with-pcre= 的目录是pcre 文件夹路径

[root@zgz-nginx nginx-1.19.0]# yum -y install openssl openssl-devel
[root@zgz-nginx nginx-1.19.0]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/home/xbl/software/pcre-8.35

[root@zgz-nginx nginx-1.19.0]# make
[root@zgz-nginx nginx-1.19.0]# make install

4、查看nginx版本

#user  nobody;
worker_processes  auto;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

http {

  upstream tomcatserver {
  ip_hash;
  server 192.168.32.50:6001;  #三个tomcat 服务此方式 ,客户端的访问固定落到某一个tomcat服务上
  server 192.168.32.50:6002;
  server 192.168.32.50:6003;
  }
  upstream springboot1 {
  server 192.168.32.51:7001;  #权重的方式分发请求,weight=1;请求按权重轮询着落到不同机器上。
  server 192.168.32.51:7002;
  }
  upstream springboot2 {
  server 192.168.32.52:8001;
  }
    include       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  logs/access.log  main;
    client_max_body_size     50m; # //文件大小限制,默认1m
    client_header_timeout    1m;
    client_body_timeout      1m;
    proxy_connect_timeout    60s;
    proxy_read_timeout      1m;
    proxy_send_timeout      1m;
    proxy_next_upstream off; #某服务宕机了,不会请求同组的下一个服务。
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
 



    # HTTPS server    HTTPS端口443 服务代理配置。
    #
    server {
        listen       443 ssl;
        server_name  a.domain.com; #域名

        ssl_certificate      /home/nginx/cert/6615247_a.domain.com.pem;
        ssl_certificate_key  /home/nginx/cert/6615247_a.domain.com.key;

       # ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers  on;

        location / {             #location 后面是请求路径的匹配规则(各种),/代表都走这个服务组
        proxy_pass http://tomcatserver;
        }
        location ~ /aaa/ { #/aaa/ 代表https://a.domain.com/aaa/** 这样的域名走springboot1
        proxy_pass http://springboot1;
        }
        location ~ /bbb/ { #/bbb/ 代表https://a.domain.com/bbb/** 这样的域名走springboot1
        proxy_pass http://springboot2;
        }
    }

    # HTTP server HTTP 80端口代理配置,rewrite注释掉的,是重定向到https服务。
    #
    server {
        listen    80;
        server_name  a.domain.com;

        location / {
        proxy_pass http://tomcatserver;
        }
        location ~ /aaa/ {
        proxy_pass http://springboot1;
        }
        location ~ /bbb/ {
        proxy_pass http://springboot2;
        }

#        rewrite ^ https://a.domain.com;    # 将http转到https
#        rewrite ^(.*) https://$server_name$1 permanent;
#        rewrite ^ https://$http_host$request_uri? permanent;    # 将http转到https
   }
}

 

Nginx 基本命令

以下包含了 Nginx 常用的几个命令:

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

下一篇:Nginx的RTMP模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值