Nginx服务部署与配置

目录

HTTPS访问配置(又称自签名)

1、SSL简介

2、HTTPS 工作流程(重要)

3、自留签名证书

location配置

作用

匹配规则

匹配优先级

rewrite配置


HTTPS访问配置(又称自签名)

1、SSL简介

SSL (Secure Sockets Layer)安全套接层。是由Netscape(网景)公司于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。主要任务是提供私密性,信息完整性和身份认证。

2、HTTPS 工作流程(重要)

- 客户端(浏览器)访问 https://www.baidu.com 百度网站;
- 百度服务器返回 HTTPS 使用的 CA 证书;
- 浏览器验证 CA 证书是否为合法证书;
- 验证通过,证书合法,生成一串随机数并使用公钥(证书中提供的)进行加密;
- 发送公钥加密后的随机数给百度服务器;
- 百度服务器拿到密文,通过私钥进行解密,获取到随机数(公钥加密,私钥解密,反之也可以);
- 百度服务器把要发送给浏览器的内容,使用随机数进行加密后传输给浏览器;(对称加密)
- 此时浏览器可以使用随机数进行解密,获取到服务器的真实传输内容。
openssl genrsa -out rsa1024.key 1024
生成1024字符的私钥文件(私钥包括公钥)

Nginx服务部署与配置_第1张图片

Nginx服务部署与配置_第2张图片

openssl req -new -key rsa1024.key -out rsa1024.csr
通过私钥文件生成请求文件

Nginx服务部署与配置_第3张图片

生成证书请求文件nginx.csr
openssl x509 -req -days 365 -in rsa1024.csr -signkey rsa1024.key -out rsa1024.crt
将生成的文件交给当前的CA,再结合私钥,生成最终的证书


-out 输出
-in 读取
-signkey 指定特殊的私钥文件

3、自留签名证书

[root@nginx1 ~]# mkdir /usr/share/nginx/pki/private -p     #生成私钥文件(包含公钥和私钥)

[root@nginx1 ~]# cd /usr/share/nginx/pki/private

[root@nginx1 private]# openssl genrsa -out nginx.key       #查看私钥文件:

[root@nginx1 private]# openssl rsa -in nginx.key -text     #生成证书请求文件

[root@nginx1 ~]# cd /usr/share/nginx/

[root@nginx1 nginx]# openssl req -new -key ./private/nginx.key -out nginx.csr

[root@nginx1 ~]# cd /etc/pki/nginx

[root@nginx1 nginx]# openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -out nginx.crt                          #查看证书:

[root@nginx1 nginx]# openssl x509 -req -days 3650 -in nginx.csr -signkey ./private/nginx.key -text
本地服务器: 
公司需要购买公有IP地址:使用该IP进行域名注册;
使用公司拍照:法人证件;域名和IP找CA机构进行申请


公有云服务器:自带IP
直接注册域名:使用公司拍照:法人证件;域名和IP找CA机构进行申请

location配置

作用

location [ = | ~ | ~* | ^~ ] uri {
  ...
}
##在浏览器中输入的:http://www.jx.com/s?id=1&test=123,称作URL,即:统一资源定位符
##在WEB服务器中,对资源进行标识,URI,即统一资源标识符

匹配规则

- = 精确匹配;
- ~ 正则匹配,区分大小写;
- ~* 正则匹配,不区分大小写;
- ^~ 匹配到即停止搜索;

匹配优先级

=  >  ^~  >   ~  >  ~*  > 不带任何字符 “/”
  # 只有当访问 www.jx.com/info.html 时才会匹配到/usr/share/nginx/html/info.html
location = /info.html {  # 必须是匹配文件,不能是目录
     root  /usr/share/nginx/html;
 }


 # 当访问 www.jx.com/1.jpg 等路径时会去 /usr/share/nginx/images/1.jpg 找对应的资源
  location ~ \.(jpeg|jpg|png|svg)$ {    # “.”在配置文件中又特殊含义,只要有“.”的地方必须转移,其中(jpeg|jpg|png|svg)为源组
root /usr/share/nginx/html/images;

# 当访问 www.jx.com/bbs/ 时会匹配上 /usr/share/nginx/html/bbs/index.html
  location ^~ /bbs/ {            #匹配进行 例如:专门寻找其目录中带有bbs 进行匹配,
    root /usr/share/nginx/html;
    index index.html index.htm;
  }

rewrite配置

根据指定正则表达式匹配规则,重写 URL。应用场景:新老域名的更替

语法:rewrite 正则表达式 要替换的内容 [flag];

可写入字段:server、location、if
例如:rewirte /images/(.*\.jpg)$ /pic/$1; # $1是前面括号(.*\.jpg)的反向引用
在URL的基础上 ,拼写images,以(.*\.jpg)作为源总作后缀,重写images到pic目录里并以$1作为(.*\.jpg)的占位符

.*  ————	. 表示匹配任意单个字符(除换行符外,除非启用「点匹配换行」模式);* 表示前一个字符(.)出现 ​0次或多次​(即任意数量的任意字符)。
\.jpg ————  \. 是转义后的点号(. 在正则中有特殊含义,需用 \ 转义为普通字符);jpg 是字面量匹配。整体表示以 .jpg 结尾
condition 判断条件:

- $variable 仅为变量时,值为空或以0开头字符串都会被当做 false 处理;
- = 或 != 相等或不等;
- ~ 正则匹配;
- ! ~ 非正则匹配;
- ~* 正则匹配,不区分大小写;
- -f 或 ! -f 检测文件存在或不存在;
- -d 或 ! -d 检测目录存在或不存在;
- -e 或 ! -e 检测文件、目录、符号链接等存在或不存在;
- -x 或 ! -x 检测文件可以执行或不可执行;

你可能感兴趣的:(nginx,运维)