nginx反向代理多个系统

问题:为什么使用反向代理

一个服务器,里面存在多个系统,这样就开了多个端口,但是对外的时候,想通过域名加项目名访问,不想暴露端口号.于是就通过了反向代理来实现(nginx反向代理用途很多不止这个,比如解决跨域问题等等);

前面的两篇文章,nginx都是指向的静态资源路径,在此基础上继续扩扩展

配置过程:

vim conf/nginx.conf

server { listen 443; server_name '自己的域名'; ssl on; root html; index index.html index.htm; ssl_certificate cert/214173179410472.pem; ssl_certificate_key cert/214173179410472.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { # root html; # index index.html index.htm;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

if ( $request_uri ~ "^\/系统一")

{

proxy_pass serverip:server-port;

//如果是本机服务,server-ip可以写成127.0.0.1加上系统服务端口,如果不是本机服务,可以写域名或者ip,后面都不能跟路径

}

if ( $request_uri ~ "^\/系统二")

{

proxy_pass http://127.0.0.1:3000;

}

proxy_pass http://127.0.0.1:8081;

}}

这时候,如果访问域名/系统一 地址就会跳转到系统一的服务.

注:项目前面要加上虚拟路径,因为反向代理之后,我们放访问的路径就是域名/项目名/文件目录.

反向代理还有很多配置我们可以在server之前配置如:

proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(代理连接超时)

proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(代理接收超时)

proxy_send_timeout 300s;

proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小

proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)

proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘

proxy_ignore_client_abort on; #不允许代理端主动关闭连接

至此,nginx的一下简单用法我们已经了解了,另外nginx还有负载均衡等等很多功能等着我们去探索.

总结知识,查漏补缺,如果错误或者不足,欢迎大神指正补充,在此过些

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180326G0BUDE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券