nginx讲解

nginx 是一个功性能的http和反向代理web服务。
一、安装nginx
步骤:
(1)设置IP
(2)配置yum源
(3)#systemctl  enable  nginx            ///开启自启服务
(4)主配置文件nginx
vi /etc/nginx/nginx.conf
详细配置文件的目录
/etc/nginx/conf.d/二、关于nginx网站的别名功能(虚拟目录功能)
绝对别名,目录不存在
案例:
/opt/wangluo                        通过 http://192.168.1.1/net_class访问
/opt/ruanjian                         通过http://192.168.1.1/soft_class访问
#mkdir /opt/wangluo
#echo"wangluo">/opt/wangluo/index.html
#mkdir /opt/ruanjian
#echo"ruanjian">/opt/ruanjian/index.html
#vim /etc/nginx/nginx.conf
location /opt/net_class  {  alias  /opt/wangluo;}
location /opt/soft_class  {  alias  /opt/ruanjian;}相对别名,目录是存在的 (网站的根目录)
案例:
/usr/share/nginx/html/school/jiaoxue                   通过http://192.168.1.1/jiaoxue  访问
/usr/share/nginx/html/school/xingzheng                通过http://192.168.1.1/xingzheng 访问#mkdir -p  /usr/share/nginx/html/school/jiaoxue
#mkdir -p   /usr/share/nginx/html/school/xingzheng
#cd  /usr/share/nginx/html/school
#echo"jiaoxue"> jiaoxue/index.html
#echo"xingzheng"> xingzheng/index.html
#vim /etc/nginx/nginx.conf
location  /jiaoxue  { root  /usr/share/nginx/html/school/;}
location  /xingzheng  { root  /usr/share/nginx/html/school/;}三、基于IP和端口的虚拟主机
(针对用户视觉:访问了多台web服务器(虚拟的))
服务器视觉:多台web服务器位于同一台物理主机上分类:
(1)基于IP的虚拟主机
主机设置多个ip地址:
#vim /etc/sysconfig/network-scripts/ifcfg-ens160
BOOTPROTO=YES
ONBOOT=NO
IPADDR0=192.168.112.22
NETMASK=255.255.255.0
GATEWAY0=192.168.112.254
IPADDR1=192.168.111.22
IPADDR2=192.168.222.22
DNS1=192.168.222.23#nmcli connection up ens160                      //启用网卡
#systemctl restart NetworkManager           //重启网卡服务
#mkdir -p /var/www/web1
#mkdir -p /var/www/web2
#echo   web1> /var/www/web1/index.html
#echo   web2> /var/www/web2/index.html
在/etc/nginx/conf.d/创建virtualhost.conf,名称可以任意,如v.conf等
#vim  /etc/nginx/conf.d/v.conf
server{listen 192.168.111.22;root  /var/www/web1;location  /  { index  index.html;
}
}
server{listen 192.168.222.22;root  /var/www/web2;location  /  { index  index.html;
}
}(2)基于端口的虚拟主机
#mkdir -p /var/www/web8080
#mkdir -p /var/www/web8081
#echo   web8080> /var/www/web8080/index.html
#echo   web8081> /var/www/web8081/index.html
#vim  /etc/nginx/conf.d/v.conf
server{listen 192.168.112.22:8080;root  /var/www/web8080;location  /  { index  index.html;
}
}
server{listen 192.168.112.22:8081;root  /var/www/web8081;location  /  { index  index.html;
}
}(3)基于主机名的虚拟主机
#mkdir -p /var/www/w1
#mkdir -p /var/www/w2
#echo   w1> /var/www/w1/index.html
#echo   w2> /var/www/w2/index.html
#vim  /etc/nginx/conf.d/v.conf
server{listen 192.168.112.22;server_name w1.local.com;root  /var/www/w1;location  /  { index  index.html;
}
}
server{listen 192.168.112.22;server_name w2.local.com;root  /var/www/w2;location  /  { index  index.html;
}
}四、目录浏览和目录权限,用于文件下载。通过http://192.168.112.1/  访问下载#vim  /etc/nginx/conf.d/v.conf
root  /var/www/manager
location  /  { autoindex on;         #默认off
}由于该目录安全性不高,需要对主机访问进行限制(只允许192.168.112.1主机访问该目录)
location  /  { autoindex on;         #默认offallow 192.168.112.1;deny all;
}第五 设置带证书的https
(1)创建证书
#mkdir -p /etc/ssl
#echo   https> /etc/ssl/index.html
#openssl -genrsa -out server.key                                    #生成私钥
#openssl req -new -key server.key  -out server.csr -days 365 -subj"/C=cn/OU=System/O=skills/L=Beijing/ST=Beijing/CN=www.local.com"
#openssl x509 -req -in server.csr -signkey server.key -out server.crt      (未通过CA颁发证书生成的自签名证书)
==============================================================================================================================
创建根证书CA:
#vi /etc/pki/tls/openssl.cnf        #现在配置证书的名称和存放位置等相关信息做定义。
#cd /etc/pki/CA                         #创建为根证书CA所需的目录及文件
#mkdir -pv {certs,crl,newcerts,private}    #创建配置文件信息中所需的目录及文件
#touch {serial,index.txt}
#echo 01 >> serial                            #指明证书的开始编号
#(umask077;openssl genrsa -out private/server.pem 2048)     #生成根证书的私钥(注意:私钥的文件名与存放位置要与配置文件中的设置相匹配。 里的参数2048,指的是密钥的长度位数,默认长度为512位)
#ll private
#cd /etc/pki/CA
#生成自签证书,即根证书CA,自签证书的存放位置也要与配置文件中的设置相匹配,生成证书时需要填写相应的信息
#openssl req -new -x509 -key /etc/pki/CA/private/server.pem -out cacert.pem -day 365  -subj"/C=cn/OU=System/O=skills/L=Beijing/ST=Beijing/CN=www.local.com"
#ls  /etc/pki/CA    (cacert.pem就是生成完成的根证书CA)颁发证书,在需要证书的服务器上,生成证书签署请求
(1)生成私钥,该私钥的位置可随意定
#cd /etc/ssl
# (umask077;openssl -genrsa -out server.key  2048)                                #生成私钥
(2)生成证书签署请求
#openssl req -new -key server.key  -out server.csr -days 365 -subj"/C=cn/OU=System/O=skills/L=Beijing/ST=Beijing/CN=www.local.com"  在根证书服务器上,颁发证书
(1)颁发证书,即签名证书,生成crt文件
#openssl ca -in /etc/ssl/server.csr  -out /etc/pki/CA/certs/server.crt  -day365
#openssl x509 -in /etc/pki/CA/certs/server.crt -noout -serial -subject          ///查看证书信息
(2)格式转换为pfx格式的私钥#openssl pkcs12 -export  server.pfx -inkey /etc/ssl/server.key -in /etc/pki/CA/certs/server.crt   ///注意,-inkey的值server.key是需要证书服务器上生成的私钥key文件。
(3)格式转换为cer格式的公钥
#openssl x509 -inform pem -in /etc/pki/CA/certs/server.crt -outform der -out  /etc/ssl/server.cer     由以pem编码pem转成以der编码的cer证书。
#openssl x509 -in  /etc/ssl/server.cer -text -noout     ///查看CER证书信息。
=============================================================================================================================
vi /etc/nginx/nginx.conf
server { listen 443;server_name www.local.com;root  /etc/ssl;ssl_certificate "/etc/ssl/server.crt"; ssl_certificate_key "/etc/ssl/server.key";
}systemctl restart nginx           ///重启
systemctl enable nginx         ///开机自启===============================================================NGinx反向代理
反向代理服务器是一种代理服务器,用于管理从外部网络到内部网络的连接或任何特定请求。它保护、路由和管理从管理从外部网络到内部网络、WEB服务器或专用网络流量。模拟环境:
1、centos7(nginx) 172.16.123.123/16
2、windows server 2012R2  IP: 172.16.66.66 (站点1)   IP:172.16.88.88(站点2)
3、Windows 7(cilent)IP:172.16.44.44/16
==============================================
此处只配置nginx的反向代理
一、基于域名或主机名的反向代理
(1)修改配置文件:vi /etc/nginx/nginx.conf   (upstream 、server),我们不修改主配置文件,修改加载的配置文件
(2)创建网页 :windows server 2012R2上面创建两个网站。
(3)测试:(www.local.com----->sitel1;web.local.com---->site2)
前提:配置域名解析(平时设置动态:DNS ;静态解析:hosts)#vi /etc/nginx/conf.d/anti.conf
upstream site1 {server  172.16.66.66;
}
upstream site2 {server  172.16.88.88;
}
server { listen 80;server_name www.local.com;location / { proxy_pass http://site1;
}
server { listen 80;server_name web.local.com;location / { proxy_pass http://site2;
}#systemctl restart nginx==============================
客户机,修改hosts文件:C:\Windows\System32\drivers\etc\hosts中添加两条
172.16.123.123    www.local.com
172.16.123.123    web.local.com======================================================================
二、基于网页语言(html,asp,jsp,asp.net,php)的反向代理
(1)修改配置文件:vi /etc/nginx/nginx.conf   (upstream 、server)
(2)创建网页(html,asp)
(3)测试(http://172.16.123.123/index.html----->site1;http://172.16.123.123/index.asp----->site2)
#vi /etc/nginx/conf.d/lan.conf
upstream asp {server  172.16.66.66;
}
upstream html {server  172.16.88.88;
}
server { listen 80;location ~*\.asp$ { proxy_pass http://asp;}location ~*\.html$ { proxy_pass http://html;}
}#systemctl restart nginx
#netstat -ant       ///查看端口==============================================================================
三、基于访问源的反向代理 【实现区域式访问,就是指定杭州用户访问杭州区域的站点,指定江西用户访问江西区域的站点。】
(1)修改配置文件:vi /etc/nginx/nginx.conf   (upstream 、server)
(2)创建网页
(3)测试时记得更换地区用户IP地址【如果客户机IP:172.16.33.33---->杭州用户(site1)  ;反之客户机IP:172.16.44.44-------江西用户 (site2)】#vi /etc/nginx/conf.d/city.conf
upstream hangzhou.server {server  172.16.66.66;
}
upstream jiangxi.server {server  172.16.88.88;
}
geo  $city { 172.16.33.33/32 huangzhou;                    ///自定义city名172.16.44.44/23 jiangxi;}
server {  listen 80;location / { proxy_pass http://$city.server;}}#systemctl restart nginx
============================================
四、基于浏览器类型的反向代理   【实际生活中,很多网站需要特定的浏览器访问,解决问题就是同一个网站,做成适应不同浏览器的站点,或换一句就是google浏览器跳转site2,IE浏览器跳转site1】
(1)修改配置文件:vi /etc/nginx/nginx.conf   (upstream 、server)
(2)创建网页
(3)测试【如果使用google浏览器------->site2)  ;反之使用IE浏览器------->site1】#vi /etc/nginx/conf.d/explore.conf
upstream msie {                                               ///IE规定使用msieserver  172.16.66.66;
}
upstream chrome {                                         ///google使用任意server  172.16.88.88;
}
server {  listen 80;location / {  if($http_user_agent~*“MSIE”){proxy_pass http://msie; }if($http_user_agent~*“chrome”){proxy_pass http://chrome; }}}#systemctl restart nginxlocation 指令说明
=========================================================================
该指令用于匹配 URL。
语法如下:1、= :用于不含正则表达式的 url 前,要求请求字符串与 url 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。2、~:用于表示 url 包含正则表达式,并且区分大小写.3、~*:用于表示 url 包含正则表达式,并且不区分大小写。4、^~:用于不含正则表达式的 url 前,要求 Nginx 服务器找到标识 url 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 url 和请求字符串做匹配
=======================================================五、网站部署HTTPS加密连接协议后通常在刚开始我们会允许用户通过 HTTP或者HTTPS 两个版本进行自由访问。在测试 HTTPS 版已经没有问题的情况下,那么基于安全性考虑已经没有必要再让用户访问HTTP明文连接版本。因此我们需要将HTTP版的所有访问强制跳转到HTTPS版。
即:Nginx HTTP 301 HTTPS
通过修改虚拟主机的配置文件让 Nginx直接rewrite重写,所以首先我们下找到Nginx虚拟主机配置文件。nginx.conf添加或者修改如下代码:server{listen 80;#listen [::]:80;server_name www.local.com;rewrite ^(.*) https://www.local.com  permanent;  # 将HTTP 301 重定向到 HTTPS 开始,permanent表示301index index.html index.htm index.php default.html default.htm default.php;     #默认首页
}

nginx(详细讲解)相关推荐

  1. nginx配置文件nginx.conf详细讲解(3)

    上一节我们介绍了nginx.conf的配置文件的3个模块内容,分别是main,events,stream(请自行脑图我画的图–对就是猪脸的那个).本节我们进行http模块的详细讲解.那在讲解之前我们在 ...

  2. nginx详细文档 – 安装配置,深入源码,模块编写,编译器参数,系统函数

    nginx文档 吴东 April 28, 2009 Contents 1前言 5 2基本配置 7 2.1安装------- 7 2.2配置说明------. 10 2.3启动和控制------ 25 ...

  3. 2.5万字详细讲解个人网站的开发过程和项目的部署

    目录 简介 1 技术介绍 1.1 个人博客功能 1.2 技术组合 1.3 工具与坏境 2 项目的环境配置 2.1 vue的环境配置 2.2 解决跨域问题 2.3 关于图标的获取 3 前端技术 3.1 ...

  4. 【云原生】Docker数据卷及网络详细讲解

    前言 大家好,本文是对 Docker 数据卷及网络详细讲解,讲解了如何创建使用数据卷,以及如何使用 Docker network.希望对大家有所帮助~ 目录 前言 一.Docker 数据卷 1.1.数 ...

  5. 【云原生】Docker镜像详细讲解

    前言 大家好,本文是对 Docker 镜像的详细讲解,讲解了如何安装 Docker.配置 Docker 镜像加速以及操作 Docker 镜像.希望对大家有所帮助~ 目录 前言 一.安装 Docker ...

  6. Spring Cloud详细讲解

    Spring Cloud详细讲解 一.微服务架构4个核心问题 1.服务很多,客户端该怎么访问? 2.这么多服务服务之间如何通信? 3.这么多服务,如何治理? 4.服务挂了怎么办? 解决方案: Spri ...

  7. 一文详细讲解API网关核心功能和API管理扩展

    本文将详细讲解API网关的基础概念,使用场景和核心功能,以及基于API网关核心引擎做的API全生命周期管理功能扩展等,最后介绍当前主流的开源API网关引擎. API网关概述 在微服务架构体系里面,我们 ...

  8. 尚硅谷vue笔记 详细讲解版(尚硅谷 天禹老师)

    视频:[尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通]https://www.bilibili.com/video/BV1Zy4y1K7SH?vd_source=10e3dfac9 ...

  9. 适合新手练手,用Python爬取OPGG里英雄联盟英雄胜率及选取率,详细讲解加注释(建议收藏练手)

    今天来个简单的小项目,适合新手拿来练手,在OPGG上爬取英雄联盟里的法师,ADC,打野,辅助所有英雄的胜率及选取率,是不是感觉很高大上,但是却很简单,只要用三十多行代码就能实现,详细讲解每一行代码加注 ...

最新文章

  1. 【Netty】传输(Transport)
  2. Hejr 6-8 - aamsaafanqs Blog - Blogster
  3. dede文章调用时过滤调 body里面的style属性和值
  4. C# 静态方法和属性 图书管理
  5. 湖北2018年GDP同比增长7.8% 进出口增速有所回升
  6. D - Power Strings POJ - 2406
  7. Python+OpenCV:K-Means聚类
  8. 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(五)
  9. python pywin32模块详解_python模块win32com用法详解
  10. 计算机毕业设计java+jsp旅游网站(源码+系统+mysql数据库+Lw文档)
  11. 如何快速给PDF挂接目录书签
  12. 怎么用手机测量CAD图纸中的立面面积?
  13. PNP与NPN三极管开关特性
  14. 提现业务流程介绍与设计
  15. 通过单片机定时器输出周期为1s的方波,驱动LED灯闪烁
  16. virtualxposed使用教程_VirtualXposed 使用方法教程 —— 教您不 Root 用上强悍的 Xposed 框架 | 软件库...
  17. iwork8 Android86,酷比魔方(CUBE)IWORK8 U80GT平板电脑整体评测-ZOL中关村在线
  18. Linux进程调度 - CFS调度器 LoyenWang
  19. 利用百度AI平台+pyqt5实现自动识别银行卡小工具
  20. 常见六大 Web 安全攻防解析

热门文章

  1. 中兴f650 2.0.3 固件降级_年轻人的5G视频手机 中兴天机Axon11 SE 5G定档6.1
  2. AxureRP使用技巧
  3. linux查cpu和内存配置,Linux查看CPU和内存的配置信息
  4. java 周次_java处理年、月、周次以及起至日期大全
  5. PowerDesigner导入Excel表
  6. cocos2dx实例开发之2D横版跑酷
  7. 如何让玩家更有“代入感”? 《极乐迪斯科》叙事分析
  8. 后台添加商品和添加到购物车
  9. 希捷3T硬盘松下mov变0字节视频恢复修复方法
  10. 计算机音乐教程图片大全,图片+音乐做成视频简单两步操作,一图流音乐视频制作教程...