nginx知识点-1

#因为是最小化安装,先安装vim编辑器,net-tools查看端口,psmisc可以使用killall命令bash-completion tab补全命令(需要重启生效)
[root@localhost ~]# yum -y install net-tools psmisc vim bash-completion
[root@localhost ~]# tar zxvf nginx-1.17.6.tar.gz 

#因为等下要源码安装nginx,所以先安装gcc make编译软件,pcre-devel是为了使nginx支持正则表达式,openssl-devel是为了nginx加密
[root@localhost ~]# cd nginx-1.17.6/ && ls
auto     CHANGES.ru  configure  html     Makefile  objs    src
CHANGES  conf        contrib    LICENSE  man       README
[root@localhost ~]# yum -y install gcc make pcre-devel openssl-devel 
[root@localhost nginx-1.17.6]# ./configure --prefix=/usr/local/nginx --user=nginx --with-http_ssl_module && make && make install 
--prefix 指定安装位置
--user 指定以哪位用户身份启动nginx
--with-http-ssl_module 使用安全网站模块
[root@localhost nginx-1.17.6]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf  html  logs  sbin
[root@localhost nginx]# sbin/nginx 
nginx: [emerg] getpwnam("nginx") failed  启动失败的原因是,编译时指定以nginx用户启动,服务器没有nginx用户,所以失败
[root@localhost nginx]# useradd nginx #创建个nginx用户
[root@localhost nginx]# sbin/nginx 
[root@localhost nginx]# netstat -ntupl |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4615/nginx: master 
nginx认证

访问nginx网站时,需要输入正确的用户名和密码才能访问

配置如下:

[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]# vim conf/nginx.conf
server {
        listen       80;
        server_name  localhost;
        auth_basic "password";
        auth_basic_user_file "/usr/local/nginx/pass";  认证文件
[root@localhost nginx]# sbin/nginx -s reload
htpasswd用于为指定用户生成基于网页用户身份认证的密码,由httpd-tools软件包提供。支持3种加密算法:MD5、SHA和系统上的crypt()函数,不指定算法时,默认为md5。
[root@localhost ~]# yum -y install httpd-tools
[root@localhost ~]# htpasswd -c pass tom
New password: 
Re-type new password: 
Adding password for user tom
[root@localhost nginx]# ls
client_body_temp  fastcgi_temp  logs  proxy_temp  scgi_temp
conf              html          pass  sbin        uwsgi_temp
[root@localhost nginx]# cat pass 
tom:$apr1$KVns/c9N$K3YF4Lnb3lM2nMcH/WF1r/
添加第二个用户认证以上,不需要加 -c
[root@localhost nginx]# htpasswd pass jerry
New password: 
Re-type new password: 
Adding password for user jerry
[root@localhost nginx]# cat pass
tom:$apr1$KVns/c9N$K3YF4Lnb3lM2nMcH/WF1r/
jerry:$apr1$e/pzkrYu$90EooPydjHbG.fzc8Na6c1

浏览器访问ip地址

虚拟主机
可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。

配置如下:

基于域名的虚拟主机

[root@localhost nginx]# vim conf/nginx.conf
server {
        listen 80;
        server_name www.b.com;
        root html_b;
        index index.html;
        }
​
    server {
        listen       80;
        server_name  www.a.com;
        #charset koi8-r;
​
        #access_log  logs/host.access.log  main;
        location / {
            root   html_a;
            index  index.html index.html;
[root@localhost nginx]# mkdir html_b && echo "test-b~~~" > html_b/index.html
[root@localhost nginx]# mkdir html_a && echo "test_a" > html_a/index.html
[root@localhost nginx]# sbin/nginx -s reload
这里没有搭建DNS服务器,就用主机映射文件暂时替用
[root@localhost nginx]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.99.5 www.a.com
192.168.99.5 www.b.com
[root@localhost nginx]# curl www.b.com
test-b~~~
[root@localhost nginx]# curl www.a.com
test_a

基于ip的虚拟主机

[root@localhost nginx]# ifconfig eth0 | sed -n "/inet/p" | awk '{print $2}' |grep ^1
192.168.88.5
[root@localhost nginx]# ifconfig eth1 | sed -n "/inet/p" | awk '{print $2}' |grep ^1
192.168.99.5
[root@localhost nginx]# vim conf/nginx.conf
server {
        listen 80;
        server_name 192.168.99.5;
        root html_b;
        index index.html;
        }
​
    server {
        listen       80;
        server_name  192.168.88.5;
        #charset koi8-r;
​
        #access_log  logs/host.access.log  main;
        location / {
            root   html_a;
            index  index.html index.htm;
        }
[root@localhost nginx]# sbin/nginx -s reload
[root@localhost nginx]# curl 192.168.88.5
test_a
[root@localhost nginx]# curl 192.168.99.5
test-b~~~

基于端口的虚拟主机

[root@localhost nginx]# vim conf/nginx.conf
server {
        listen 88;
        server_name www.a.com;
        root html_b;
        index index.html;
        }
​
    server {
        listen       80;
        server_name  www.a.com;
        #charset koi8-r;
​
        #access_log  logs/host.access.log  main;
        location / {
            root   html_a;
            index  index.html index.htm;
        }
[root@localhost nginx]# sbin/nginx -s reload
[root@localhost nginx]# curl www.a.com:88
test-b~~~
[root@localhost nginx]# curl www.a.com:80
test_a
​
nginx加密网站
https协议原理 首先,客户端与服务器建立连接,各自生成私钥和公钥,是不同的。服务器返给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东西加密,称之为密文,并连并自己的公钥一起返回给服务器,服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返回给客户端,客户端拿着自己的私钥解密密文,把数据呈现出来

配置如下:

[root@localhost nginx]# vim conf/nginx.conf
输入法切换英文,按esc,冒号:,输入以下情况
:101,118s/#/ /
把以下配置的#号取消注释
server {
         listen       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;
         }
     }
[root@localhost nginx]# openssl genrsa > conf/cert.key
Generating RSA private key, 2048 bit long modulus
...+++
.+++
e is 65537 (0x10001)
 openssl genrsa 命令是会用来生成 RSA 私有秘钥,不会生成公钥,因为公钥提取自私钥。生成时是可以指定私钥长度和密码保护。
[root@localhost nginx]# openssl req -x509 -key conf/cert.key > conf/cert.pem
-key:指定已有的秘钥文件生成秘钥请求
req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书
-x509: 说明生成自签名证书,自签名证书又称为根证书,是自己颁发给自己的证书,即证书中的颁发者和主体名相同。
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]:dc
State or Province Name (full name) []:dc
Locality Name (eg, city) [Default City]:dc
Organization Name (eg, company) [Default Company Ltd]:dc
Organizational Unit Name (eg, section) []:dc
Common Name (eg, your name or your server's hostname) []:dc
Email Address []:dc
[root@localhost nginx]# mkdir https && echo "https-test~~" > https/index.html
[root@localhost nginx]# sbin/nginx -s reload
[root@localhost nginx]# curl -k https://192.168.99.5
https-test~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/119249.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SourceTree 4.1.5(Git客户端)

SourceTree是一款Git和Hg客户端管理工具软件,同时支持Mercurial和Subversion版本控制系统。它具有以下功能: 版本控制:SourceTree可以创建、克隆、提交、push、pull和合并等操作,支持分布式版本控制系统,使得开发者可…

图片文件过大怎么压缩?五种压缩方法大全

图片文件过大怎么压缩?不知道大家有没有遇到过这样的尴尬情况,当我们将一些图片上传到某个网站的时候,被提示图片大小操作了网站的限制而被禁止上传,我相信很多人都遇到过吧,其实这是网站的一张防御措施,防…

计算机毕业设计 基于SpringBoot房屋租赁管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

如何更改IP地址为美国IP?美国静态住宅代理如何搭建?

相信很多做跨境电商或外贸如TikTok shop、Facebook商店、Amazon、领英的玩家都需要搭建独享的美国IP环境来运营店铺,那么如何搭建稳定独享的IP环境呢?加下来为你详细介绍,助力您的跨境业务。 一、选择合适的代理IP 代理IP可以帮助隐藏用户真…

C++prime之输入输出文件

作为一种优秀的语言,C必然是能操作文件的,但是我们要知道,C是不直接处理输入输出的,而是通过一族定义在标准库中的类型来处理IO的。 ‘流’和‘缓冲区’ ‘流’和‘缓冲区’ C程序把输入输出看作字节流,并且其只检查…

伐木猪小游戏

欢迎来到程序小院 伐木猪 玩法&#xff1a;控制小猪点击屏幕左右砍树&#xff0c;不能碰到树枝&#xff0c;考验手速与眼力&#xff0c;记录分数&#xff0c;快去挑战伐木吧^^。开始游戏https://www.ormcc.com/play/gameStart/199 html <script type"text/javascript…

嵌入式系统设计与应用---ARM指令集(学习笔记)

目录 本文图片截取自书本和老师的ppt 概述 指令格式 指令的条件码 ARM的寻址方式 立即寻址 寄存器寻址 寄存器间接寻址 寄存器移位寻址 变址寻址 多寄存器寻址 相对寻址 堆栈寻址 块复制寻址 ARM指令集简介 跳转指令 1.B指令 2.BL指令 数据处理指令 1.数据传…

G-LAB IT实验室【11月】网工公开课 即将开始~

带你一起走进网工的世界&#xff01;G-LAB网工入门免费公开课即将开讲&#xff01;无论是想学习基础网络组网还是网络互通技术实施&#xff0c;这个公开课都是你不容错过的&#xff01; 公开课课程为期两天&#xff0c;11月7日&#xff06;11月8日晚20&#xff1a;00 分享主题…

第七章 图【数据结构与算法】【精致版】

第七章 图【数据结构与算法】【精致版】 前言版权第七章 图7.1 应用实例7.2图的基本概念7.3图的存储结构7.3.1邻接矩阵**1-邻接矩阵.c****2-邻接矩阵plus.c** 7.3.2 邻接表**3-邻接表.c** **4-邻接表plus.c** 7.3.3 十字链表7.3.4多重链表 7.4图的遍历7.4.1深度优先搜索遍历**5…

动作捕捉系统通过SDK与LabVIEW通信

运动分析、VR、机器人等应用中常使用LabVIEW对动作捕捉数据进行实时解算。NOKOV度量动作捕捉系统支持通过SDK与LabVIEW进行通信&#xff0c;将动作数据传入LabVIEW。 一、软件设置 1、形影软件设置 1、将模式切换到后处理模式 2、加载一个刚体数据 3、打开软件设置 4、选择网…

Flink往Starrocks写数据报错:too many filtered rows

Bug信息 Caused by: com.starrocks.data.load.stream.exception.StreamLoadFailException: {"TxnId": 2711690,"Label": "cd528707-8595-4a35-b2bc-39b21087d6ec","Status": "Fail","Message": "too many f…

帧间快速算法论文阅读

Low complexity inter coding scheme for Versatile Video Coding (VVC) 通过分析相邻CU的编码区域&#xff0c;预测当前CU的编码区域&#xff0c;以终止不必要的分割模式。 &#x1d436;&#x1d448;1、&#x1d436;&#x1d448;2、&#x1d436;&#x1d448;3、&#x…

宝马——使用人工智能制造和驾驶汽车

德国汽车制造商宝马(BMW)每年在全球制造和销售250万台汽车&#xff0c;其品牌包括宝马、MINI和劳斯莱斯。 宝马汽车以其卓越的性能和对新技术的应用而著名&#xff0c;它是道路上最精致的汽车之一&#xff0c;并且和其竞争对手戴姆勒(Daimler)一样&#xff0c;在将自动驾驶汽车…

从行车记录仪恢复已删除/丢失视频的方法

“我的车里有行车记录仪。几天前&#xff0c;当我下班回家时&#xff0c;一辆卡车不知从哪里冒出来撞向了我。我们的两辆车都损坏了&#xff0c;但幸运的是&#xff0c;没有人受伤。我曾与卡车司机就修理我的汽车进行过会面&#xff0c;但他说我有错。我需要查看我的行车记录仪…

音乐播放芯片选型规则概述

在选择音乐播放芯片时&#xff0c;应该先了解芯片的参数和特性&#xff1b;做到心中有数。常见的参数包括&#xff1a;采样率、位深度、动态范围、总谐波失真&#xff08;THD&#xff09;、信噪比&#xff08;SNR&#xff09;等。这些参数决定了芯片的音频处理能力和音质表现。…

HelpLook VS HelpDocs:知识库工具一对一比较

您是否正在寻找比HelpDocs更好的替代方案&#xff1f;您是否希望使用功能更强大的类似工具&#xff1f;HelpDocs是一款简单易用的知识库软件&#xff0c;可以在一个集中的位置创建、托管和监控自助服务门户。凭借其模板、原生集成和详细的分析功能提供不错的用户体验。尽管它具…

Jmeter全流程性能测试实战

项目背景&#xff1a; 我们的平台为全国某行业监控平台&#xff0c;经过3轮功能测试、接口测试后&#xff0c;98%的问题已经关闭&#xff0c;决定对省平台向全国平台上传数据的接口进行性能测试。 01、测试步骤 1、编写性能测试方案 由于我是刚进入此项目组不久&#xff0c…

ASP.NETCore6开启文件服务允许通过url访问附件(图片)

需求背景 最近在做一个工作台的文件上传下载功能&#xff0c;主要想实现上传图片之后&#xff0c;可以通过url直接访问。由于url直接访问文件不安全&#xff0c;所以需要手动开启文件服务。 配置 文件路径如下&#xff0c;其中Files是存放文件的目录&#xff1a; 那么&…

【大模型应用开发教程】04_大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析

大模型开发整体流程 & 基于个人知识库的问答助手 项目流程架构解析 一、大模型开发整体流程1. 何为大模型开发定义核心点核心能力 2. 大模型开发的整体流程1. 设计2. 架构搭建3. Prompt Engineering4. 验证迭代5. 前后端搭建 二、项目流程简析步骤一&#xff1a;项目规划与…

Docker-compose容器群集编排管理工具

目录 Docker-compose 1、Docker-compose 的三大概念 2、YAML文件格式及编写注意事项 1&#xff09;使用 YAML 时需要注意下面事项 2&#xff09;ymal文件格式 3&#xff09;json格式 3、Docker Compose配置常用字段 4、Docker-compose的四种重启策略 5、Docker Compose…