Nginx反向代理+负载均衡简单实现(https方式)

背景:
A服务器(192.168.1.8)作为nginx代理服务器
B服务器(192.168.1.150)作为后端真实服务器

现在需要访问https://test请求时从A服务器上反向代理到B服务器上

这就涉及到nginx反向代理https请求的配置了~~~

------------------------------------------------------------------------------------
A服务器(192.168.1.8)上的操作流程:

1)编译安装nginx
[root@opd ~]# yum install -y pcre pcre-devel openssl openssl-devel gcc
[root@opd ~]# cd /usr/loca/src
[root@src ~]# wget
[root@src ~]# tar -zxvf nginx-1.8.0.tar.gz
[root@src ~]# cd nginx-1.8.0
#添加www用户,其中-M参数表示不添加用户家目录,-s参数表示指定shell类型

[root@nginx-1.8.0 ~]#useradd www -M -s /sbin/nologin
[root@nginx-1.8.0 ~]##vim auto/cc/gcc
#将这句注释掉 取消Debug编译模式 大概在179行
#CFLAGS="$CFLAGS -g"

#我们再配置下nginx编译参数,编译时一定要添加--with-http_ssl_module,以便让nginx支持ssl功能!
[root@nginx-1.8.0 ~]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
[root@nginx-1.8.0 ~]#make
[root@nginx-1.8.0 ~]#make install clean

2)配置nginx
[root@nginx-1.8.0 ~]# cd /usr/local/nginx/conf
[root@nginx-1.8.0 conf]# vim nginx.conf

user  nobody;

worker_processes  8;

 

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

 

events {

    worker_connections  65535;

}

   

http {

    include      mime.types;

    default_type  application/octet-stream;

    charset utf-8;

  

    log_format  main  '$http_x_forwarded_for $remote_addr $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_cookie" $host $request_time';

    sendfile      on;

    tcp_nopush    on;

    tcp_nodelay    on;

    keepalive_timeout  65;

  

  

    fastcgi_connect_timeout 3000;

    fastcgi_send_timeout 3000;

    fastcgi_read_timeout 3000;

    fastcgi_buffer_size 256k;

    fastcgi_buffers 8 256k;

    fastcgi_busy_buffers_size 256k;

    fastcgi_temp_file_write_size 256k;

    fastcgi_intercept_errors on;

   

      

    client_header_timeout 600s;

    client_body_timeout 600s;

   

    client_max_body_size 100m;     

    client_body_buffer_size 256k;  <br>       

   ## support more than 15 test environments<br>    server_names_hash_max_size 512;<br>    server_names_hash_bucket_size 128;<br>

    gzip  on;

    gzip_min_length  1k;

    gzip_buffers    4 16k;

    gzip_http_version 1.1;

    gzip_comp_level 9;

    gzip_types      text/plain application/x-Javascript text/css application/xml text/javascript application/x-httpd-php;

    gzip_vary on;

   

  

    include vhosts/*.conf;

}

[root@nginx-1.8.0 conf]# ulimit -n 65535
[root@nginx-1.8.0 conf]# mkdir vhosts

-----------------------------------------------------
接下来手动配置ssl证书
如果自己手动颁发证书的话,那么https是不被浏览器认可的,就是https上面会有一个大红叉
****************************************************
推荐一个免费的网站:https://www.startssl.com/
startssl的操作教程看这个:
****************************************************

下面是手动颁发证书的操作:
[root@linux-node1 ~]# cd /usr/local/nginx/conf/
[root@linux-node1 conf]# mkdir ssl
[root@linux-node1 conf]# cd ssl/
[root@linux-node1 ssl]# openssl genrsa -des3 -out aoshiwei.com.key 1024
Generating RSA private key, 1024 bit long modulus
................................++++++
....................................++++++
e is 65537 (0x10001)
Enter pass phrase for aoshiwei.com.key:                    #提示输入密码,比如这里我输入123456
Verifying - Enter pass phrase for aoshiwei.com.key:     #确认密码,继续输入123456

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/46d2a59ec0cc5877c51b686447cc1355.html