Nginx——配置代理-服务的代理

docker 容器的配置

 docker run --name nginx-t -p 1234:8099  -d nginx:bitmap
   命令 -p 是用来进行端口映射的,它可以穿透防火墙的限制,将容器内部的端口映射到宿主机(主机)的对应端口上,
 从而可以通过宿主机访问容器内部的应用服务
   这个命令将运行一个 nginx 容器并将容器的 8099 端口映射到宿主机的 1234 端口上,
   这样就可以通过访问 http://宿主机IP:1234 来访问容器中的 nginx 服务了
      Ngix代理的服务端口
         服务本地的端口号比如 1001  --本地有一个127.0.0.1:1001 的web服务
  注意-宿主机的1234端口是需要开放出来的
server {
listen       8099;                                                         
server_name  10.0.0.1;                                               
client_max_body_size 1024M;
 location  {
    proxy_pass 127.0.0.1:1001;
  }
}

代理

正向代理是一种代理模式,在这种模式下,客户端无法直接访问目标服务器,而是通过一个代理服务器来访问。
   代理服务器会将客户端的请求转发给目标服务器,并将目标服务器返回的响应返回给客户端	   
   客户端浏览器中配置代理服务器,然后通过代理服务器来进行访问,   
反向代理是一种代理模式,在这种模式下,客户端访问的是代理服务器,
   而代理服务器则将请求转发给目标服务器。目标服务器返回的响应也会经过代理服务器,最终返回给客户端。
   反向代理:无需在客户端进行配置即可访问,我们只需要将请求发送给反向代理服务器,
   然后由反向代理服务器去选择要访问的目标服务器获取数据后,在返回给客户端

1.Nginx配置文件 nginx.conf详解

 位置:
    一般是位于/etc/nginx/nginx.conf 和安装的位置有关,可以find 命令查找一下
  nginx在安装的时候会默认创建一个nginx.conf文件,这个文件就是nginx的主要配置文件
结构
  nginx配置文件采用了类似于C语言的语法格式,它是由指令和块组成的。
     nginx.conf中配置server块
	    listen 该指令用于设置服务器监听的端口号,例如监听80端口

Nginx

 高性能的HTTP和反向代理web服务器 
        Nginx 可以作为静态页面的 web 服务器 
		作为服务器:Java 程序通过与 tomcat 配合完成,接收外部请求,然后将请求转发给内部的Tomcat服务器
		                               Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级
    电子邮件(IMAP/POP3)代理服务器
    Nginx作为负载均衡服务	
    访问控制、SSL加密、主机管理 高性能的网站	 
    反向代理的目的是为了隐藏真实服务器的IP地址的话,负载均衡则是提供了一组策略来将请求从代理服务器上分发到这些真实的服务器上去

构成模块

   Nginx的各类模块,分为核心模块、标准HTTP模块、可选HTTP模块、邮件模块、第三模块和补丁。

配置文件

    默认的配置文件都放在conf 目录下,而主配置文件nginx.conf 也在其中
	  1.:全局块   : worker_processes 值越大,可以支持的并发处理量也越多,但会受到硬件、软件等设备的制约
	  2.:events 块:
	  3.:http 块 :
	      每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
		      而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块
			      locaton 块基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),
				   对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,
				   对特定的请求进行处理。地址定向、数据缓存和应答控制等功能

命令行

   -- nginx文件夹的sbin目录 			  
  Nginx -s参数的可执行文件					  
        查看Nginx版本      ./nginx -v
	  检查配置文件的正确性 ./nginx -t
	  重新加载配置文件     ./nginx -s reload

进程

   后台进程包含一个 master 进程和多个 worker 进程
master进程主要用来管理worker进程,具体包括如下4个主要功能:
   接收来自外界的信号。
   向各worker进程发送信号。
   监控woker进程的运行状态。
   当woker进程退出后(异常情况下),会自动重新启动新的woker进程。
woker进程主要用来处理基本的网络事件:
   多个worker进程之间是对等且相互独立的,他们同等竞争来自客户端的请求。
   一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。
   worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致。
   同时,nginx为了更好的利用多核特性,具有cpu绑定选项,我们可以将某一个进程绑定在某一个核上,这样就不会因为进程的切换带来cache的失效。   

应用

 nginx实现请求的负载均衡 + keepalived实现nginx的高可用
     keepalived实现nginx高可用(HA)	
 LVS: 是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统,
       LVS 由两部分程序组成,包括 ipvs 和 ipvsadm	
    LVS是Linux内核级别的负载均衡软件,nginx则是应用级的、采用事件驱动的方式进行负载均衡软件	
     LVS适用于多种协议的负载均衡,Nginx主要适用于HTTP和HTTPS协议的负载均衡	
Keepalived 是Linux下一个轻量级的高可用解决方案,它与HACMP、RoseHA实现的功能类似,都可以实现服务或者网络的高可用	

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理	

反向代理 -示例

1.先起一个Nginx容器,开启云主机防火墙对应端口,访问测试ngInx是否可以访问
   docker run --name nginx-test  -p 1234:80  -d nginx:latest	
2.配置正式的代理
 先起一个Nginx容器 docker stop  nginx-test  && docker rm  nginx-test
    docker run --name nginx-test  --network host  -d nginx:latest
 配置容器内的/etc/nginx的配置文件		

3.查看日志--报错查看日志
  docker  logs 

参考

 https://www.gradio.app/guides/running-gradio-on-your-web-server-with-nginx
 https://github.com/binary-husky/gpt_academic/issues/155	 
  nginx常用代理配置 https://www.cnblogs.com/fanzhidongyzby/p/5194895.html
posted @ 2024-01-12 18:05  辰令  阅读(269)  评论(0编辑  收藏  举报