一、Nginx简介

  • Nginx

    • 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器
    • 是一个模块化软件

【1】、安装nginx

  • 使用源码包编译安装

    cd /opt
    # 获取nginx的源码包
    wget https://nginx.org/download/nginx-1.24.0.tar.gz
  • 安装源码编译安装的依赖

    yum install -y gcc make pcre-devel openssl-devel
  • 编译安装

    cd nginx-1.24.0/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
    # with-http_ssl_module:安全模块
    make && make install
  • 安装完成

    root@proxy[00:32:33]:/opt/nginx-1.24.0
    $ cd /usr/local/nginx/
    root@proxy[00:32:42]:/usr/local/nginx
    $ ls
    conf html logs sbin
    # 创建nginx的执行用户
    root@proxy[00:32:43]:/usr/local/nginx
    $ useradd nginx -s /sbin/nologin
  • 启动测试

    root@proxy[00:33:21]:/usr/local/nginx
    $ ./sbin/nginx
    root@proxy[00:33:32]:/usr/local/nginx
    $ netstat -tunple | grep 80
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 45415 8939/nginx: master

【2】、nginx目录解析

  • conf:存放nginx的配置文件
  • html:存放网页文件
  • sbin:主程序目录
  • logs:日志
root@proxy[00:41:29]:/usr/local/nginx
$ ./sbin/nginx -s stop
root@proxy[00:41:41]:/usr/local/nginx
$ ./sbin/nginx -V
nginx version: nginx/1.24.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

重新加载配置

sbin/nginx -s reload

【3】、nginx配置文件

nginx配置文件分为3部分

指令 参数 ;

指令是在nginx中定义好的,参数可以有也可以没有

./conf/nginx.conf.default:是nginx的配置文件的原始模板,不要修改

# 第39行,取消注释,将原本的编码改为utf-8,网页即可支持中文
charset utf-8;

实现认证功能

在配置认证功能后,别人就不能随便访问了

在虚拟主机的范围中输入如下两行:

auth_basic "password"; 开启认证功能

auth_basic_user_file "/usr/local/nginx/pass"; 谁能访问都在这个文件中,一会新建这个文件

nginx要求:

pass文件中的密码必须是加密的形式,不能是明文。因此我们不能通过vim创建并写入内容

我们下载一个新的工具

yum install -y httpd-tools

这个工具提供了可以进行加密的方式:htpasswd命令

root@proxy[01:27:32]:/usr/local/nginx
$ htpasswd -c /usr/local/nginx/pass tim
New password:
Re-type new password:
Adding password for user tim
root@proxy[01:28:49]:/usr/local/nginx
$ cat /usr/local/nginx/pass
tim:$apr1$pgY4Cs/n$isLfKsG9OPy33UmyhB0hY0
$ htpasswd /usr/local/nginx/pass tom
New password:
Re-type new password:
Adding password for user tom

【4】、nginx实现虚拟主机

和httpd一样

nginx也可以设置虚拟主机

修改nginx的配置文件

# 基于域名的虚拟机主机
server{
listen 80;
server_name www.a.com;
root html_a;
index index.html;
}
# 基于端口的虚拟主机
server{
listen 8080;
server_name www.a.com;
root html_a;
index index.html;
}

【5】、加密网站

  • 对称密钥

    • 同一个密码加密,同一个密码解密就是对称加密
    • AES
    • DES
    • 应用案例:RAR、ZIP压缩加密(只适合单机加密)
  • 非对称密钥
    • 使用公钥和私钥实现的

      • 公钥加密(),公钥也被称之为证书
      • 私钥解密()
      • 比方说我想逛淘宝,淘宝就会发给我一个公钥,我是用淘宝发来的公钥进行加密,然后再进行传输;数据到达服务器后淘宝再使用自己的私钥进行解密
    • RSA
    • DSA
    • 应用案例:网络加密(https、ssh)
  • Hash值
    • MD5
    • SHA256
    • SHA512
      • 主要用于:数据完整性校验

修改nginx配置文件

在nginx中开发者为我们写好了一个实现非对称加密的虚拟主机,只不过是被注释掉了,我们找到后将注释取消即可

由于网站使用加密访问,将采用https协议

#这是nginx为我们写好的Virtual Host,我们只需将注释解除及可
server {
listen 443 ssl; # https使用的是443端口,ssl是加密方式
server_name localhost; ssl_certificate cert.pem; # 公钥,要和配置文件放在同一 个目录下
ssl_certificate_key cert.key; # 私钥,要和配置文件放在同一 个目录下 ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location / {
root https;
index index.html index.htm;
} # 生成私钥
openssl genrsa > cert.key
Generating RSA private key, 2048 bit long modulus (2 primes)
..................+++++
.....................+++++
# 生成公钥
openssl req -x509 -key cert.key > cert.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
# 下面的这些内容目前可以随便填
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:da
Locality Name (eg, city) [Default City]:asd
Organization Name (eg, company) [Default Company Ltd]:aaa
Organizational Unit Name (eg, section) []:ccc
Common Name (eg, your name or your server's hostname) []:qw
Email Address []:ll@ll.com # 查看生成的公钥和私钥
ls conf/cert*
conf/cert.key conf/cert.pem # 在使用crul访问加密网站时,需要-k参数,来忽略加密
curl -k https://192.168.121.170
https

ngnix简介和基础的更多相关文章

  1. APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例

    前言 继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告.下一篇为HTTP接口实战(国家气象局接口自动 ...

  2. OpenStack实践系列①openstack简介及基础环境部署

    OpenStack实践系列①openstack简介及基础环境部署 一.OpenStack初探1.1 OpenStack简介 OpenStack是一整套开源软件项目的综合,它允许企业或服务提供者建立.运 ...

  3. 2.JSR简介 - JavaEE基础系列

    JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...

  4. 爬虫开发7.scrapy框架简介和基础应用

    scrapy框架简介和基础应用阅读量: 1432 scrapy 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数 ...

  5. 【CSS简介、基础选择器、字体属性、文本属性、引入方式】前端小抄(2) - Pink老师自学笔记

    [CSS简介.基础选择器.字体属性.文本属性.引入方式]前端小抄(2) 本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! 一.CSS简介 CSS 的主要使用场景就是布局网页,美化页面 ...

  6. Spring简介和基础

    Spring介绍 1.什么事Spring? spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. spring的设计模式是单例模式和工厂模式. 2.spring的四大优点 轻量 ...

  7. 《零成本实现Web自动化测试--基于Selenium》第二章 Selenium简介和基础

    第一部分 Selenium简介 1.Selenium 组建 1.1 Selenium-IDE Selenium-IDC是开发Selenium测试案例的集成开发环境.它像FireFox插件一样的工作,支 ...

  8. css系列教程--简介及基础语法和注意事项

    css简介:css指的是层叠样式表,cascading style sheets.用来定义html中的dom节点如何展示在页面中的问题.解决了内容与表现形式的分离问题.常见的样式表有外部链接样式表和内 ...

  9. RSA算法原理——(2)RSA简介及基础数论知识

    上期为大家介绍了目前常见加密算法,相信阅读过的同学们对目前的加密算法也算是有了一个大概的了解.如果你对这些解密算法概念及特点还不是很清晰的话,昌昌非常推荐大家可以看看HTTPS的加密通信原理,因为HT ...

  10. Markdown 简介及基础语法

    一.Markdown 简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 二.Markdown 基础语法 1. Markdown ...

随机推荐

  1. 智影AI故事转视频创作神器!快速开启AI绘画小说推文之旅

    1.前言 1.1 生成内容形式 生成内容形式主要包含三种,PGC(Professionally Generated Content).UGC(User Generated Content).AIGC( ...

  2. 编译安装mysql5.7.20

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \ ...

  3. 7.26考试总结(NOIP模拟24)[matrix·block·graph]

    你那无聊的幻想,就由我来打破! 前言 补坑中.. 我都不知道自己这场模拟赛怎么打的了. 非常玄学,前三个小时一直在想正解,然后最后 20min 感觉 T1 不太稳,就又加上了一个暴力. 后来一看只有最 ...

  4. Excel相关技巧

    (1)如何实现EXCEL某个单元格满足条件整行变色? 链接:https://jingyan.baidu.com/article/75ab0bcba47c19d6864db2cf.html (2)获取表 ...

  5. 开发视频会议系统:使用GPU解码渲染视频

    现在,使用视频会议系统远程协同办公.沟通交流,已经非常普遍了.如果我们要开发自己的视频会议系统,那么,GPU解码渲染技术是不可缺少的. 在视频会议系统中,经常需要同时观看会议中多个参会人员的视频图像, ...

  6. Kali Linux 终端字体配色

    在用root用户登录Kali Liunx时,会发现终端的字体无配色,非常难看,以下这幅图便是kali用户和root用户的区别,看着真难受. echo $PS1,这便是区别所在. 那我们怎么让root用 ...

  7. Mysql RC/RR隔离原理和区别 不可重复读和可重复读

    Mysql RC/RR隔离原理和区别 不可重复读和可重复读 mysql四种隔离级别:1.未提交读(READ UNCOMMITED)脏读2.已提交读 (READ COMMITED)简称(RC) 不可重复 ...

  8. idea如何快速找到项目中待处理的TODO注释

    idea如何快速找到项目中待处理的TODO注释 idea菜单栏 View -> Tool Windows,可以打开TODO窗口

  9. vue3实现模拟地图上,站点名称按需显示的功能

    很久很久没有更新博客了,因为实在是太忙了,每天都有公司的事情忙不完....... 最近在做车辆模拟地图,在实现控制站点名称按需显示时,折腾了好一段时间,特此记录一下.最终界面如下图所示: 站点显示需求 ...

  10. python 二次封装logging,导致日志输出的filename错误及优化封装

    问题 封装logging文件名称为:A.py 调用A模块的文件名称为:B.py 二次封装了logging日志模块,根据需要,传入level,判断等级,调用logging模块的info.debug等日志 ...