您的位置:首页 > 理论基础 > 计算机网络

nginx在linux系统下的安装部署,以及反向代理https请求协议,ssl证书的生成,负载均衡tomcat服务器!

2017-04-10 11:41 1511 查看
此文档基于nginx1.7.8版本

 

1.获取nginx安装包,将nginx安装包放到app/software下,再进行解压安装,命令如下:

   a) Zip后缀解压命令:unzip  nginx-Xx -d /app/nginx/

   b) Tar 后缀解压命令:tar  -zxvf    nginx_Xx -C  /app/idm/nginx/

 

2.之后需要下载很多工具,以及数据源(pcre,gcc,g++,zlib-devel,openssl-devel,gcc-c++),首选yum install 进行安装,如果yum无法找到数据源,可以在windows下下载安装包,放入software目录下,yum安装命令如下:

   a) Sudo yum install pcre.devel.x86_64   -y     直接安装linux中的pcre的依赖包

   b) Sudo yum installl gcc g++ openssl  -y        安装编译工具及依赖包

   c) Sudo  yum install -y zlib-devel    

如上有遗漏,希望添加!

3.如果知道准确地址,也可以通过wget 下载pcre依赖包到software下,下载命令如下:

   a) wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz 
 这是我下载时的地址

   b) 解压sudo tar zxvf pcre-8.36.tar.gz -C /usr/src/ 目录下                                        此工具为必须,因此我放入系统目录下方!也可根据情况放到别的地方

 

4.进入pcre安装目录,对pcre进行编译,命令如下:

   a) cd /usr/src/pcre-8.36/

   b) 执行./configure程序

编译成功图片示列:

     


5.进入nginx安装目录下,编译命令如下:

   a) ./configure --prefix=/app/nginx  --with-pcre --user=www --group=www --with-http_stub_status_module    

   b) make

   c ) make  && make install

      编译成功图片示列:

     


    5.1 如果暂时没有拿到安全证书的或者证书密钥,可以通过openssl工具生成一对没有授权的证书,暂时进行nginx服务器https启动访问测试(页面可能会提示不安全的证书),生成代码如下:

    5.1.1.进入 /app/nginx/conf/目录下

    5.1.2:openssl genrsa -des3 -out server.key 2048   执行,生成以rsa算法,2048大小的密钥

    5.1.3:openssl req -new -key server.key -out server.csr 通过密钥生成预证书

    5.1.4:openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt  获取到安全证书。

 

6.配置nginx.conf的配置文件,操作命令如下:

   a) Cd /app/nginx/conf/  进入该目录下

   b) Vim nginx.conf  打开编译该文件

   c) 找到文件中server,将其中的端口号修改为80转超链接443端口, { listen  80;listen 443 ssl;server_name localhost}域名设置.

   d) 接在在下方设置ssl安全证书,及证书密钥,代码如下:
ssl_certificate              /app/nginx-1.7.8/conf/server.crt; 安全证书
ssl_certificate_key      /app/nginx-1.7.8/conf/server.key; 证书密钥
ssl_session_cache        shared:SSL:10m;  缓存时间
ssl_session_timeout 10m; 会话时间

e),继续编辑nginx.conf,在安全证书下方编写代码,设置反向代理地址,如下:

location / {    – / 表示所有请求都通过代理

            proxy_pass https://localhost;

            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_set_header X-Forwarded-Proto https;

            proxy_redirect off;

        }

Ps:反向代理proxy_pass:必须设置为https://localhost 域名;

7.设置负载均衡服务器,继续编辑nginx.conf文件,在整个server上方空白处,编写代码如下:

    upstream localhost{

              #load junheng server

              server 11.2.0.107:8443 max_fails=3 fail_timeout=30s;  //如果tomcat的443端口被占用,必要带上端口号

              server 11.2.0.108:8443 max_fails=3 fail_timeout=30s;

              server 11.1.1.109:8443 max_fails=3 fail_timeout=30s;

              server 12.4.6.110:8443 max_fails=3 fail_timeout=30s;

              #ip_hash;   --ip_hash策略会在访问时让一个ip对一台负载设备,不会出现随机分发

      sticky;    --sticky刚好能够解决ip_hash的缺陷问题.

         }

               Ps:设置的负载均衡域名与proxy_pass字段输入的域名匹配,在其中输入需要负载的服务器地址及端口,max_fails表示分配时候会选择到该服务器的几率,值越大负载越大.

 

修改完成后,shift+:号,输入小写wq保存退出.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐