一、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. CSS——2D转换

  2. Wpf Bitmap(Image)Base64,Url,文件Path,Stream转BitmapSource(ImageSource),无需外部dll

    直接上代码 using System; using System.Drawing; using System.IO; using System.Windows.Forms; using System. ...

  3. nginx获取后端真实IP,添加后端服务器响应时间并记录日志

    nginx获取后端真实IP,添加后端服务器响应时间并记录日志 1.日志定义 log_format nginx '$remote_addr - $remote_user [$time_local] &q ...

  4. docker——容器的基本操作

    docker 容器的基本操作 run 格式 docker run [选项] 镜像 [命令] [参数...] 选项 选项 解释 -d 后台运行 -i 交互模式 -t 分配一个伪终端 -p 设置端口 -- ...

  5. 自定义动画 jquery的结束动画

      <button name="width">改变宽</button>     <button name="height"> ...

  6. vue基础使用

    传统dom操作 使用js或jquery库对html页面结构中的指定的区域输出数据 使用vue实现 在html页面中使用好vue需要完成如下步骤即可 引入vue.js文件 定义给vue.js管理的dom ...

  7. .net framework 使用Apollo 配置中心

    参照了:https://www.cnblogs.com/xichji/p/11324893.html Apollo默认有一个"SampleApp"应用,"DEV" ...

  8. 项目管理--PMBOK 读书笔记(11)【项目风险管理】

    1.风险分解结构(RBS): RBS 有两个含义,一个是资源分解结构(Resource),一个是风险分解结构(Risk). 1)技术风险 2)管理风险 3)商业风险 4)外部风险   2.核对单 核对 ...

  9. 没有 Git,如何下载 Gitee 代码?

    目录 没有 Git,如何下载 Gitee 代码? 注册 Gitee 账号 下载代码压缩包 没有 Git,如何下载 Gitee 代码? 鉴于看我博客的人很多都是大学本科生.非 CS 专业,大部分人都不会 ...

  10. 认真学习css3--01-全是日志没有技术内容

    由于某些原因,还是要写写前端代码. 虽然这不是我的主要责任,但也有表率的必要性. css3这个东西没有什么大难度,难点主要集中在: 1)样式比较多 2)精准定位 3)性能优化 其中第2个是日常经常面对 ...