目录
  • 代理的方式

    • Nginx代理服务支持的协议
  • Nginx代理实践
  • 准备工作
    • 部署web01
    • 部署lb01

代理的作用:将请求分配至所有服务器及负载均衡*

代理的方式

正向代理

反向代理

1.正向代理
客户端使用代理之后,还需要找服务器
客户端发送请求至代理,代理返回某个IP,客户端再根据IP链接服务器
应用:VPN2.反向代理
只需要寻找代理,不需要找服务器
应用:负载均衡

Nginx代理服务支持的协议

  • https://nginx.org/en/docs/
ngx_http_uwsgi_module       : Python
ngx_http_fastcgi_module : PHP
ngx_http_scgi_module        : Java
ngx_http_v2_module          : Golang
ngx_http_proxy_module       : HTTP

Nginx代理实践

在不允许访问172.16.1.7的前提,要求访问到172.16.1.7中的超级玛丽
lb01(172.16.1.5)代理web01(172.16.1.7)
即本机(192.168.15.1)通过访问反向代理(172.16.1.5)获取服务器web01(172.16.1.7)信息

准备工作

Lb01 172.16.1.31
Web01 172.16.1.8

部署web01

[root@web01 conf.d]# cat game5.conf
server {listen 80;server_name 192.168.15.7;location / {root /opt/Super_Marie;index index.html;}location ~ /images {root /opt/image;}
}
[root@web01 image]# pwd
/opt/image
[root@web01 image]# ll
总用量 0
drwxr-xr-x 2 root root 329 1月   6 15:10 images
# images 中是超级玛丽的图片

部署lb01

  • 部署nginx
# 通过二进制安装方法下载Nginx源代码包
[root@lb01 ~]# wget https://nginx.org/download/nginx-1.20.2.tar.gz# 解压
[root@lb01 ~]# tar -xf nginx-1.20.2.tar.gz# 进入源代码目录
[root@lb01 ~]# cd nginx-1.20.2# 可查看模块
[root@lb01 nginx-1.20.2]# ./configure --help# 安装依赖包
[root@lb01 nginx-1.20.2]# yum install openssl openssl-devel zlib zlib-devel -y# 设置编译参数
[root@lb01 nginx-1.20.2]# ./configure  --with-http_gzip_static_module    --with-stream     --with-http_ssl_module
'注意: -with-stream 启用TCP/UDP代理 一定要启用'# 编译
[root@lb01 nginx-1.20.2]# make # 安装
[root@lb01 nginx-1.20.2]# make install # 编译目录 nginx存放于sbin
[root@lb01 nginx-1.20.2]# cd /usr/local/nginx
[root@lb01 nginx-1.20.2]# ll
总用量 0
drwxr-xr-x 2 root root 333 1月   6 11:56 conf
drwxr-xr-x 2 root root  40 1月   6 11:56 html
drwxr-xr-x 2 root root   6 1月   6 11:56 logs
drwxr-xr-x 2 root root  19 1月   6 11:56 sbin
[root@lb01 nginx-1.20.2]# pwd
/usr/local/nginx
[root@lb01 nginx-1.20.2]# ll sbin/
总用量 6880
-rwxr-xr-x 1 root root 7044032 1月   6 11:56 nginx[root@web01 nginx]# pwd
/usr/local/nginx# 将web01/etc/nginx/nginx.conf配置复制到lb01中,保持两者一致
[root@web01 ~]# scp /etc/nginx/nginx.conf 192.168.15.250:/etc/nginx/nginx.conf# 编译
[root@lb01 nginx-1.20.2]# make# 安装
[root@lb01 nginx-1.20.2]# make install# 优化
[root@lb01 nginx]# mkdir /etc/nginx
[root@lb01 nginx]# mv /usr/local/nginx/conf/* /etc/nginx/
[root@lb01 nginx]# mkdir /etc/nginx/conf.d
[root@lb01 nginx]# vi /etc/nginx/nginx.conf  # 把之前里面的全部删除,添加下面内容.
user  www;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/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  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}[root@lb01 nginx]# groupadd www -g 666
[root@lb01 nginx]# useradd www -u 666 -g 666 -M -r -s /sbin/nologin[root@lb01 nginx]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/nginx.pid)"[Install]
WantedBy=multi-user.target[root@lb01 sbin]# ln -s /etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
[root@lb01 sbin]# mv /usr/local/nginx/sbin/nginx /usr/sbin/
[root@lb01 sbin]# mkdir /var/log/nginx
[root@lb01 sbin]# systemctl start nginx
  • 部署反向代理
[root@lb01 conf.d]# vim /etc/nginx/conf.d/supermary.conf
server {listen 80;server_name youxi.com;location / {proxy_pass http://172.16.1.8:80;}
}
[root@lb01 conf.d]# nginx -t
[root@lb01 conf.d]# systemctl restart nginx
# 在把172.16.1.8:80   youxi.com  添加到window上的hosts文件里  在浏览器里访问youxi.com

nginx 正反代理(超级玛丽小游戏)相关推荐

  1. 个人主页增添超级玛丽小游戏与留言板功能

    项目地址(GitHub). 我不打算花时间一点点去磨这个网站,没那么多时间,所以都是修改.利用别人现成的模板. 超级玛丽小游戏来源.留言板来源.小游戏是直接照抄,加了两个标签:留言板原来是txt文档格 ...

  2. 有效记忆nginx正反代理定义

    有效记忆nginx正反代理定义 一.正向代理 二.反向代理 一.正向代理 请求顺序是吴签想喝茶百道奶茶了,给经纪人提出了请求,然后经纪人去茶百道商家给吴签买奶茶,经纪人帮吴签干活,所以对于经纪人来说是 ...

  3. WEB中间件————NGINX 部署与上线小游戏初步使用

    WEB中间件----NGINX 部署与初步使用 1.web 中间件 常用几种 1.2 Ngx vs Apache 2.NGINX 部署 2.1 安装nginx,有三种方式 2.2访问浏览器 3. 部署 ...

  4. nginx反向代理websocket 小坑

    nginx 反向代理websocket 的小坑 现象 第一坑 第二坑 小结 现象 因为小程序,有域名有个websocket 需要做个反向代理,按照需求测试和生产都给做了反向代理. 给他们配置过测试环境 ...

  5. Java开发的船体程序 超级玛丽小游戏 411 功能非常齐全 完整源码

    今天为大家继续分享泡泡堂小游戏的开发与制作 410,目前系统已经完成了初步功能,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步!! 开发环 ...

  6. Java实现超级玛丽小游戏教程

    1.实现了哪些功能? 1.按键←.→.↑实现玛丽奥的基本移动和跳跃. 2.获取特殊道具后可以发射子弹.可以巨大化以及提升跳跃能力. 3.玛丽奥头顶特殊方块后会生成可以旋转的金币,吃到金币可以增加分数. ...

  7. 韩顺平 javascript教学视频_学习笔记17_js超级玛丽小游戏

    采用面向对象思想设计超级马里奥游戏人物 怎么用通过按键,来控制图片的位置 这个小游戏,用面向对象会很方便,不用面向对象会很麻烦很麻烦,比如以后要讲解的坦克大战的游戏,要是用纯的面向过程或函数式的方式写 ...

  8. 零基础也能学会的——用Python制作超级玛丽小游戏

    ** 1.游戏的入口 作者的功力还是蛮深的,整个代码的框架很清晰.看一下它的启动函数: 第一个from 引入了setup和tools, 主要是把一些初始化的工作在setup里面全部做完,读取一些配置文 ...

  9. python:点击就能玩的超级玛丽小游戏(附有源码)

    程序代码 import pygame,os,wx from random import randint from sys import exit from pygame.locals import * ...

  10. Java Swing实现小游戏集合源码

    ​小编也不给大家废话, 直接给大家分享源码 Java 植物大战僵尸 Java Swing实现小游戏扫雷 Java Swing实现的拼图小游戏 Java swing实现的小游戏魔方 Java Swing ...

最新文章

  1. FilteredTextBoxExtender
  2. Games101现代图形学入门Lecture 4: Transformation Cont知识点总结
  3. 在c语言程序中无论是整数还是实数,C语言基础题及参考答案
  4. 常用sql操作语句实战演示
  5. 六时车主 App iOS隐私政策
  6. Docker 容器使用
  7. 理解数据库中的undo日志、redo日志、检查点
  8. android+8.0代码安装包,Android 8.0安装apk的实例代码
  9. 决定明智地放弃对名手旋风等象棋引擎的破解...
  10. 计算机网络 第七版-第七版第八章软件工程(含答案)
  11. 计算机二级保存错地方,盘点考计算机二级那些容易出错的地方
  12. 企业微信网页应用开发 - 权限验证
  13. HDU - 2567 寻梦
  14. Linux 系统不能正常关机解决办法
  15. 1000瓶水其中有一瓶水有毒,有10只老鼠并且只要老鼠喝了有毒的水必死。请问怎样通过一次实验找出有毒的那瓶水。
  16. mybatis错误——java.io.IOException Could not find resource comxxxxxxMapper.xml
  17. Debian AMD 64bit 折腾经历
  18. 为省手续费 上淘宝拍“生活费”
  19. uniapp使用微信小程序自定义组件
  20. SQL-经典SQL语句大全

热门文章

  1. js中获得月份getmonth()+1,为什么要加1?
  2. 元子弹老师-吉他指弹左手技巧
  3. 如何远程连接POSTGRESQL数据库
  4. 如何下载天地图离线地图瓦片数据
  5. cmd查看电脑启动项
  6. gwipr70驱动天空_win7 kmplayer plus设置_gwi pr2 pluswin7驱动_kmplayerplus官方下载
  7. 涂师傅手机数据恢复官方版
  8. Java动态代理的理解
  9. android 360度视频播放器,Android开发VR实战之播放360度全景视频
  10. 不低调的巨人,史玉柱