Nginx基础(05)

30 篇文章 0 订阅
8 篇文章 0 订阅

Nginx基础(04)

制作 Nginx的RPM包

  • 应用场景
    • 官方未提供RPM
    • 官方RPM无法自定义
    • 大量源码包 , 希望提供统一的软件管理机制
  • 软件打包流程
    • 准备源码软件
    • 安装rpm-bulid
    • 编写编译配置文件
    • 编译RPM包
安装rpm-build
1) 安装rpm-build软件包

yum -y install rpm-build

2) 生成rpm-build目录结构
rpmbuild -ba nginx.spec                #会报错,没有文件或目录
ls /root/rpmbuild                    #自动生成的目录结构
    BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
3) 准备工作 , 将源玛软件复制到 SOURCES 目录

​ [root@web1 ~]# cp nginx-1.22.1.tar.gz /root/rpmbuild/SOURCES/

4) 创建并修改SPEC配置文件
    [root@web1 ~]# vim /root/rpmbuild/SPECS/nginx.spec 
    Name:nginx                                      #源码包软件名称
    Version:1.22.1                                #源码包软件的版本号
    Release:    10                                #制作的RPM包版本号
    Summary: nginx is a web server software.        #RPM软件的概述    
    License:GPL                                        #软件的协议
    URL:    www.test.com                                    #网址
    Source0:nginx-1.22.1.tar.gz                   #源码包文件的全称
    #BuildRequires:                            #制作RPM时的依赖关系
    Requires:    pcre-devel  openssl-devel       #安装RPM时的依赖关系
    %description
    nginx is an HTTP and reverse proxy server.    #软件的详细描述
    %post
    useradd nginx                    #非必需操作:安装后脚本(创建账户)
    %prep
    %setup -q                          #自动解压源码包,并cd进入目录
    %build
    ./configure
    make %{?_smp_mflags}
    %install
    make install DESTDIR=%{buildroot}
    %files
    %doc
    /usr/local/nginx/*                    #对哪些文件与目录打包
    %changelog
使用配置文件创建RPM包
1) 安装依赖软件包

yum -y install gcc pcre-devel openssl-devel

2) rpm-build 创建RPM软件包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
ls /root/rpmbuild/RPMS/x86_64/nginx-1.22.1-10.x86_64.rpm
安装软件
yum install /root/rpmbuild/RPMS/x86_64/nginx-1.22.1-10.x86_64.rpm 
rpm -qa |grep nginx
ls /usr/local/nginx/

VPN

  • VPN 虚拟专用网络

    • 在 公用网络上 建立 专用私有网络 , 进行加密通讯

    • 多用于为及图啊公司的各地子公司建立连接

    • 连接完成后 , 各个地区的子公司可以像局域网一样通讯

    • 在企业网络中有广泛应用

    • 偶尔可以用于翻墙

    • 目前主流的VPN技术 ( GRE , PPTP , L2TP+IPSec , SSL )

配置 GRE VPN

GRE 模块
  • Linux内核模块

    • ip_gre
  • 加载模块

    • lsmod | grep ip_gre
  • modprobe ip_gre

    • modinfo ip_gre
  • 缺点 : 缺少加密机制

  • GRE VPN 环境

    • 启用内核模块 ip_gre
    • 创建一个VPN隧道
    • 实现两台主机点到点的隧道通讯
  • 方案

    • 使用 lsmod 查看当前计算机已经加载的模块

    • 使用 modprode 加载 Linux内核模块

    • 使用 modinfo 可以查看内核模块的信息

1. 启用GRE模块
1) 查看计算机当前加载模块
    [root@web1 ~]# lsmod                        #显示模块列表
    [root@web1 ~]# lsmod  | grep ip_gre        #确定是否加载了gre模块
2) 加载模块 ip_gre
    [root@web1 ~]# modprobe  ip_gre
    [root@web1 ~]# lsmod  | grep ip_gre 
2. web1 主机创建VPN隧道
1) 创建隧道
    [root@web1 ~]# ip tunnel add tun0  mode gre \ 
    >  remote 192.168.99.200 local 192.168.99.100
    #ip tunnel add创建隧道(隧道名称为tun0),ip tunnel help可以查看帮助
    #mode设置隧道使用gre模式
    #local后面跟本机的IP地址,remote后面是与其他主机建立隧道的对方IP地址
2) 启用该隧道 ( 类似与设置网卡up )
    [root@web1 ~]# ip add show tun0
    [root@web1 ~]# ip link set tun0 up         #设置UP
3) 为VPN配置隧道IP地址
ip addr add 10.10.10.100/8 peer 10.10.10.200/8 dev tun0
    #为隧道tun0设置本地IP地址10.10.10.100/24
    #隧道对面的主机IP为10.10.10.200/24
ip add show tun0                      #查看IP地址
3. web2 主机创建VPN
1) 加载模块ip_gre
2) 创建隧道
3) 启用隧道
4) 为VPN配置隧道IP地址
ip addr add 10.10.10.200/8 peer 10.10.10.100/8 dev tun0
ip add show tun0                      #查看IP地址
5) 测试连通性
    [root@web1 ~]#  ping 10.10.10.200
    [root@web2 ~]#  ping 10.10.10.100

PPTP VPN

  • 支持密码身份验证
  • 支持MPPE加密

创建 L2TP+IPSec VPN

  • L2TP建立主机之间的VPN隧道 , 压缩 , 验证
  • IPSec提供数据加密 , 数据校验 , 访问控制的功能
  • 搭建L2TP+IPSec VPN环境 , 并测试该VPN网络是否能够正常通信
    • 使用 L2TP 协议创建一个支持身份验证与加密的隧道连接
    • 使用 IPSec 对数据进行加密
    • 为客户端连接的用户分配 10.10.10.10 的地址池
    • 客户端连接的用户名为 : tom 密码为 : 123456
    • 预共享密钥为 : randpass
  • 方案
    • 使用Web1作为服务端
    • Windows10 作为客户端 , ip为 99 网段
    • 加入99网段的虚拟网络
1. 部署 IPSec 服务
1) 安装
yum  -y  install  libreswan   #安装加密工具
cp  myipsec.conf  /etc/ipsec.d/   
				#复制配置IPSec密钥验证配置文件到ipsec.d目录
2) 配置
vim  /etc/ipsec.d/myipsec.conf    #修改配置第16行
    left=192.168.99.100    #设置为本机ip(此处在真实环境为公网ip)
vim  /etc/ipsec.secrets   #修改配置,添加加密信息
    192.168.99.100  %any:  PSK  "randpass"  
    #另起一行,添加99.100是本机ip,%any:是允许任何客户机连接本服务器,PSK(pre share key)是预共享密钥,randpass是密码,等windows客户连接vpn服务器时需要该密码
2. 安装VPN工具
1) 安装
    [root@web1 vpn]#yum -y install  ./xl2tpd-1.3.8-2.el7.x86_64.rpm
    [root@web1 vpn]#vim  /etc/xl2tpd/xl2tpd.conf   
    					#打开配置文件,32、33行
    ip range = 10.10.10.10-10.10.10.18  #给客户分配的ip
    local ip = 192.168.99.100    #本机ip
2) 配置
vim  /etc/ppp/options.xl2tpd   #修改配置文件,将第10、16行注释掉,删除掉21行的#以及空格,就可以启用加密
#crtscts                                                #注释该行
#lock                                                #注释该行
3) 创建账户
vim  /etc/ppp/chap-secrets   #定义windows客户机的用户名和密码
tom  *  123456  *     #另起一行创建用户tom,配置密码123456
4) 开启服务
    systemctl  start  ipsec   #开启加密服务
    ss  -ntulp |grep  :500    #检查加密服务
    /usr/sbin/xl2tpd            #开启vpn服务
    ss  -ntulp |grep  xl2tpd   #检查加vpn服务
5) 翻墙设置 ( 非必要操作 )
echo "1" > /proc/sys/net/ipv4/ip_forward    #开启路由转发
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 \
>  -j SNAT --to-source 201.1.2.10

编写 systemd Unit 文件

  • systemd 是 Linux 系统的一组基本构建块

  • 提供一个系统和服务器管理

  • 作为 PID1 运行并启动系统的其余部分进程

  • 控制 systemd 的主要命令是 systemctl

  • Unit文件

    • systemd 管理服务时会读取对应的配置文件 , 也就是 Unit 文件
    • 读取 Unit 文件的目录 ( 优先级由高到低 )
      • /etc/systemd/system ( 设置了开机自启的 Unit 文件 )
      • /usr/lib/systemd/system ( 所有已经安装软件的 Unit 文件 )
  • Unit文件语法

    1. Description 描述信息
    2. After 在哪个服务之后启动
    3. Before 在哪个服务之前启动
    4. type 服务类型 , 默认为 simple
    5. EnvironmentFile 定义变量文件
    6. ExecStart 执行 systemctl start 需要启动的进程名称
    7. ExecStop 执行 systemctl stop 需要停止的进程名称
    8. ExecReload systemctl reload 需要执行的命令
    9. WantedBy 依赖当前服务的 tatget
1. 使用 systemd 管理 shell 文件
  • 有Shell文件存在于 /root/test.sh , 权限给予 chmod +x 可执行权限
1) 编写 Unit文件
 cp /usr/lib/systemd/system/{crond.service,test.service}
[root@web1 ~]# vim /usr/lib/systemd/system/test.service
[Unit]
Description=my test script            
After=time-sync.target
[Service]
ExecStart=/root/test.sh           # 路径
ExecReload=/bin/kill -HUP $MAINPID  #  kill 是发送信号 
KillMode=process
[Install]
WantedBy=multi-user.target
2) 重新加载 Unit 文件
systemctl  daemon-reload
2. 使用 systemd 管理 Nginx 服务
Unit 文件
    [root@web1 ~]# vim /usr/lib/systemd/system/nginx.service
    [Unit]
    Description=The Nginx HTTP Server        #描述信息
    After=network.target remote-fs.target nss-lookup.target    
    [Service]
    Type=forking
    #仅启动一个主进程的服务为simple,需要启动若干子进程的服务为forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/bin/kill -s QUIT $MAINPID
    [Install]
    WantedBy=multi-user.target
    [root@web1 ~]#systemctl start nginx    #可以控制nginx开启了,这里如果无效可以尝试重启服务器
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx基础配置可以在其配置文件nginx.conf中找到。配置文件的路径通常是/nginx/conf/nginx.conf。 在nginx.conf文件中,可以设置许多选项来配置nginx的行为。其中一些基本的配置选项包括: - http块:在配置文件中,http块定义了全局的http配置,包括一些常用的配置项,如mime.types文件的引入、代理配置文件的引入、fastcgi配置文件的引入以及默认的索引文件等。 - server块:在http块中,可以有多个server块,每个server块定义了一个虚拟主机的配置信息。可以在每个server块中指定域名或IP地址,以及监听的端口号等。 - location块:在server块中,可以有多个location块,每个location块定义了一组匹配规则和对应的处理方式。可以通过location块来指定请求的URL匹配规则,并根据规则配置相应的处理方式,如代理请求到其他服务器、处理静态文件等。 此外,nginx还支持在配置文件中引入其他文件,以便更好地组织和管理配置。例如,可以在nginx.conf中使用include指令来引入其他配置文件,如mime.types、proxy.conf和fastcgi.conf。 总结起来,nginx基础配置可以在nginx.conf文件中找到,其中包括http块、server块和location块等配置项。可以使用include指令来引入其他配置文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Nginx的基本配置](https://blog.csdn.net/weixin_46007090/article/details/120105907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Nginx基础配置](https://blog.csdn.net/weixin_41968982/article/details/123687834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值