Nginx 简单介绍(一)

简介: 如果我们想要将数据转接到多个服务器可以这样写: [^1]

1. nginx

   1. 代理

       1. nginx 更像 一个壳,包裹了内网服务和外界的交互,让内网的服务更专注于业务的处理本身。

       2. 所谓的代理,是代替内网服务处理和外界的交互。

       3. 原本的单进程模式或者cs bs 直接处理的方式,将业务和链接一起处理,耦合性更高。

       4. 使用nginx的方式,可以降低耦合性。也方便后台业务的维护,因为:可以实现链接和处理的分离,也就降低了更新维护的成本。

   2. 配置代理

       1. nginx采用配置的方式,实现它的代理功能,

       2. 配置在 conf 目录下的 `*.conf` 文件中。

       3. 配置核心是:`http` `server`  等关键字。

       4. 配置可使用关键字 可在开源代码中找到,它使用Key 的方式进行检索处理

     

```conf
            http {
                server {
                }
            }
            ```

       5. 我们先不考虑nginx的源码实现,这里先了解他的用法:他采用web的域名访问方式 进行分割和处理。 如果我们想要让前端的访问请求直接转到 指定地址或者指定服务器上的指定端口可以这样做:

     

```conf
            http {
             server {
                 listen 8000;
                 location / {
                     root /usr/local/nginx/html/www;
                 }
             }
                server {
                    listen 9000;
                    location / {
                        proxy_pass http://192.168.1.10:8888;
                    }
                 }
            }
            ```

       6. 如果我们想要将数据转接到多个服务器可以这样写: [^1]

     

```conf
            http {
                upstream test{
                    server 192.186.1.10;
                    server 10.16.1.101:8888;
                }
                server {
                     listen 9000;
                     location / {
                        proxy_pass http://test;
                     }
                 }
            }
            ```
        7. 如果想引入负载均衡可以这样写:`weight=9 ` 这里的语义是配置权重
            ```conf
            http {
                upstream test{
                    server 192.186.1.10    weight=9;
                    server 10.16.1.101:8888  weight=1;
                }
                server {
                     listen 9000;
                     location / {
                        proxy_pass http://test;
                     }
                 }
            }
            ```

       8. 如果内容过多,可以将多个server 分开写到不同的`.conf`文件中。在主配置文件中使用 `include`加载 例如:

     

```conf
            http {
                upstream test{
                    server 192.186.1.10    weight=9;
                    server 10.16.1.101:8888  weight=1;
                }
                include ./conf_SVR_1/Svr.conf;
                include ./conf_SVR_2/Svr.conf;
                include ./conf_SVR_3/Svr.conf;
                include ./conf_SVR_4/Svr.conf;
                include ./conf_SVR_5/Svr.conf;
                include ./conf_SVR_6/Svr.conf;
                include ./conf_SVR_Type/*.conf;
            }
            ```

           在各个副配置文件中就只需要写`serve`块中内容。不要再写 `http`了。


   3. 安装命令

 

```shell
        ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_addition_module --with-http_ssl_module --with-http_gzip_static_module --with-http_secure_link_module --with-http_stub_status_module --with-stream --with-pcre=/home/king/share/nginx/pcre-8.45 --with-zlib=/home/king/share/nginx/zlib-1.2.13 --with-openssl=/home/king/share/nginx/openssl-1.1.1s
        ```

   4. 使用nginx 编译需要加载的库, 假设你需要对Nginx二次开发,这里以`ngx_code.c`为例子:

 

```shell
        gcc -o ngx_code ngx_code.c -I ./nginx-1.22.1/src/core/ -I ./nginx-1.22.1/objs/ -I ./nginx-1.22.1/src/os/unix/ -I ./pcre-8.45/ -I ./nginx-1.22.1/src/event/ -I ./openssl-1.1.1s/include/ -I ./nginx-1.22.1/src/event/modules/

       ```

   5. 补充内容 :《Nginx反向代理与系统参数配置conf原理》[^2]


[^1]:如果只有IP 没有端口,说明是默认的端口 80 。


[^2]:![[Nginx反向代理与系统参数配置conf原理.pdf]]

目录
相关文章
|
JavaScript API
Vue使用vue-3d-model组件预览3D三维文件、立体文件,支持旋转、自动播放
Vue使用vue-3d-model组件预览3D三维文件、立体文件,支持旋转、自动播放
|
存储 机器人
电子技术:深入探索与实际应用
电子技术:深入探索与实际应用
84 0
如何在edge上安装拓展weTab
如何在edge上安装拓展weTab
234 0
|
12月前
|
JavaScript API
Vue3基础(24)___vue3中不再支持filters
Vue 3中不再支持filters(过滤器)
207 2
|
11月前
|
人工智能
三文带你轻松上手鸿蒙的AI语音03-文本合成声音
三文带你轻松上手鸿蒙的AI语音03-文本合成声音
283 1
三文带你轻松上手鸿蒙的AI语音03-文本合成声音
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。
|
程序员 开发工具
Vim命令大全:掌握编辑利器
Vim命令大全:掌握编辑利器
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表
|
机器学习/深度学习 安全 网络安全
利用深度学习优化图像识别流程网络安全与信息安全:防范漏洞、强化加密、提升意识
【5月更文挑战第27天】 在本文中,我们探索了深度学习技术如何革新传统的图像识别过程。通过构建一个基于卷积神经网络(CNN)的模型,我们展示了从数据预处理到特征提取再到分类决策的整个优化流程。实验结果表明,该模型在处理复杂图像数据集时,不仅提高了识别准确率,还显著缩短了处理时间。文章最后讨论了模型在现实世界应用中的潜力以及未来改进的方向。 【5月更文挑战第27天】在数字时代,网络安全与信息安全已成为全球关注的焦点。本文将深入探讨网络安全漏洞的成因与危害,加密技术的重要性及其应用,以及提升公众安全意识的必要性。通过对这些关键领域的分析,我们旨在为读者提供一套全面的安全防护策略,以应对日益复杂的
|
Java Linux Spring
centos7系统运行、停止java程序常用命令,springboot打包运行
centos7系统运行、停止java程序常用命令,springboot打包运行
1432 0
centos7系统运行、停止java程序常用命令,springboot打包运行