一、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. ajax跨域(跨源)方案之CORS

    ajax跨域(跨源)方案:后端授权[CORS],jsonp,服务端代理 CORS是一个W3C标准,全称是"跨域资源共享",它允许浏览器向跨源的后端服务器发出ajax请求,从而克服了 ...

  2. H.265码流解析

    这一篇内容旨在对H.265码流中的一些概念做简单了解,部分概念与H.264相同,本篇中将不再重复. 1.NALU H.265(HEVC)码流的NALU结构和AVC有一些不同,属于增强版,HEVC NA ...

  3. C#WPF的多屏显示问题

    如果想让窗口在第二个屏幕中显示 public MainWindow() { InitializeComponent(); Screen[] _screens = Screen.AllScreens; ...

  4. 薄书的pytorch项目实战lesson49-情感分类+蹭免费GPU

    项目来源 B站视频pytorch项目实战-情感分类问题 github lesson49-情感分类实战 1 实验环境 在这里和大家推荐一个学习ML和DL的一个实验运行平台,就是google的Colabo ...

  5. 用Vue全家桶纯手工搓了一个开源版「抖音」

    前言 2018年刚入行前端时,公司使用的还是Angular.Angular什么都好,就是写代码时的体验老糟心了,改一个地方,按下保存之后,要等好几秒刷新后才能看到效果,Webstorm无比好用的自动保 ...

  6. 6.26考试总结(NOIP模拟10)[入阵曲·将军令·星空]

    对于虚伪而言,真实的光明或许过于耀眼了 前言 这一次吧,考得特别烂,主要是这次考试想搞一下特殊性质,然后一不小心就因小失大弄巧成拙了下,下次注意吧.. T1 入阵曲 暴力 思路 对于这个题的话,暴力的 ...

  7. 数据结构之栈(Java,C语言的实现)以及相关习题巩固

    目录 栈 概念以及代码实现 例题 232. 用栈实现队列 1614. 括号的最大嵌套深度 234. 回文链表 1614. 括号的最大嵌套深度 LCR 123. 图书整理 I 206. 反转链表 402 ...

  8. java8 多条件的filter过滤

    java8 多条件的filter过滤 package com.example.core.mydemo.java; import java.io.Serializable; import java.ti ...

  9. Linux日志搜索 grep

    1.关键字"或"的搜索, -E 不能少.grep -E "word1|word2|word3" file.txt满足任意条件(word1.word2和word3 ...

  10. markdown语法支持测试

    latex 公式 \(v, w, \nu, \omega\) \[\iiint, \oiiint \] \(\Set{ x | x<\frac 1 2 }\) \(\displaystyle \ ...