软件系统定制开发nginx反向代理

软件系统定制开发代理相当于中间商,软件系统定制开发通过中间商就可以访问软件系统定制开发到很多资源

nginx的优点:

nginx软件系统定制开发是一个典型的七层lsp,软件系统定制开发但是也支持四层的

软件系统定制开发对网络的稳定向依赖非常小,理论上能ping通就能进行负载功能

安装和配置比较简单,测试起来非常方便

nginx可以通过检测端口检测到服务器的内部故障

nginx缺点:

nginx仅能支持http,https,和Email协议

对后端服务器的健康检查只能通过端口进行,不支持通过url检测,不支持session保持

1.反向代理,将localtion头部修改为与代理服务器相同的ip地址

比较懂IT的都知道通过curl -I http://IP地址之后的location查看是否为

(1)怎么如果修改location呢?

添加一个:                之后重启服务

  1. proxy_pass http://192.168.100.203/abc;
  2. proxy_redirect http://192.168.100.203/abc /world;

(2.)之后进行验证:

  1. [root@MiWiFi-R4CM-srv ~]# curl -I http://192.168.100.202/world
  2. HTTP/1.1 301 Moved Permanently
  3. Server: nginx/1.20.2
  4. Date: Mon, 16 May 2022 12:18:17 GMT
  5. Content-Type: text/html
  6. Content-Length: 169
  7. Connection: keep-alive
  8. Location: http://192.168.100.202/abc/ ##如果是对方IP就证明此服务器是个代理
  9. ##但是可以通过上面的模块进行修改,从而达到分不清是不是代理的程度

2.nginx在服务器查看客户端真实IP地址

代理服务器:

  1. location / {
  2. proxy_set_header Host $host;
  3. proxy_set_header X-Real-IP $remote_addr;
  4. proxy_set_header X-Forwarded-For $remote_addr;##这个东西一定要写对,它有可能不会报错,但会使你要看的真实ip成为"-"
  5. root html;
  6. index index.html index.htm;
  7. }

proxy_etc_header: 允许重新定义或者添加发往后端服务器的请求头

Host $host

$host就是nginx代理服务器,也就是客户端请求host。

X-Real_IP $remote_addr$remote_addr;的值为客户端的ip
proxy-Forwarded-For简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP

nginx服务器将最后一个变量在第一个,access_log启用一下

  1. log_format main '"$http_x_forwarded_for" - $remote_user [$time_local] "$request" '
  2. '$status $body_bytes_sent "$http_referer" '
  3. '"$http_user_agent"';
  4. access_log logs/access.log main;
  5. ##重点!!!千万不要忘了启用

代理到后端的TCP链接超时

proxy_connect_timeout time;

它的语法

proxy_connetc_timeout 60s;超时时间为60秒
max_conns限制最大连接数

3.配置正向代理:

(1)将服务器设置为只允许代理服务器(100.202)访问

  1. location / {
  2. charset utf-8,gbk;
  3. allow 192.168.100.202;
  4. deny all;
  5. root html;
  6. index index.html index.htm;
  7. }

(2)在代理服务器中加入

  1. location / {
  2. proxy_pass http://$http_host$request_uri; ##$http_host客户端请求的目标ip地址##$request_uri;请求的资源
  3. root html;
  4. index index.html index.htm;
  5. }

(3)在浏览器设置中写入代理服务器ip,然后进行访问服务器验证

4.nginx负载均衡

(1.)文件的配置:写在server上面

max_fails=1设置允许请求代理服务器失败的次数,默认为1。
fail_timeout=10设置经过max_fails失败后,服务暂停的时间,默认是10秒
weight=1权重,看哪个服务器配置好可以多加权重接受的请求多

(2.)在server最后面可以通过添加变量修改服务器取值

状态概述
down当前server暂时不参与负载均衡
backup当前server作为备份,等有损坏服务器的时候上场

5.nginx负载调度策略

 调度算法概述
轮循按时间顺序逐一循环分配到不同后端服务器(默认)
weght加权轮循,weght值越大,被分配到的几率更大
ip_bash每个请求按照IP的hash结果分配,这样来自同一IP的股东访问一个后端服务器
url_hash按照访问URL的hash结果来分配请求,是每个URL定向到后端服务器
least_conn最少链接数,那个机器链接数少就分发
hash关键数值hash定义的key

6.nginx的调度

(1.)添加模块(--with-stream),编译安装

  1. ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module --with-stream
  2. make && make install

(2.)config文件配置

 (3.)保存重启ngixn,然后访问代理服务器实现效果

7.nginx动静分离

(1)实验准备:一个nginx代理服务器,和一台nginx对外服务器,一台tomcat服务器

(1.1)先搭建一个tomcat服务器:上传一个tomcat文件(tomcat需要java环境)

  1. [root@cpe-66-66-66-188 ~]# tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/ ##tomcat需要java环境
  2. [root@cpe-66-66-66-188 ~]# echo "PATH=$PATH:/usr/local/java/jdk1.8.0_91/bin >> /etc/profile" ##将java环境导入配置文件
  3. [root@cpe-66-66-66-188 ~]# source /etc/profile ##刷新一下
  4. [root@cpe-66-66-66-188 ~]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/local/ ###将tomcat文件解压到/usr/local下
  5. [root@cpe-66-66-66-188 ~]# /usr/local/apache-tomcat-8.5.16/bin/startup.sh ##开启tomcat

(1.2)验证tomcatl

 (2)因为前面已经有了nginx服务,就不做如何搭建演示了

(3)在代理服务器上修改config文件:

  1. http {
  2. include mime.types;
  3. default_type application/octet-stream;
  4. sendfile on;
  5. keepalive_timeout 65;
  6. upstream static {
  7. server 192.168.100.203:80 weight=5;
  8. }
  9. upstream tomcat {
  10. server 192.168.100.204:8080 weight=5;
  11. }
  12. server {
  13. listen 80;
  14. server_name www.benet.com;
  15. location / {
  16. root html;
  17. index index.html index.htm;
  18. proxy_pass http://static;
  19. }
  20. location ~ .*\.(jsp|gif|png|css)$ {
  21. proxy_pass http://tomcat;
  22. }
  23. error_page 500 502 503 504 /50x.html;
  24. location = /50x.html {
  25. root html;
  26. }
  27. }
  28. }

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发