Nginx的安装与配置

是一个轻量级的、高性能的Web服务器和反向代理服务器,同时也是一个比较优秀的负载均衡服务器和缓存服务器,可以运行于多种平台

优点:1、高并发:能支持1万-2万甚至更多的并发连接(静态小文件更强)
      2、处理请求对服务器内存消耗较少
      3、内置对集群节点的健康性检查功能,但功能相对较弱
      4、可以通过cache插件实现缓存软件的功能。
      
      
1、什么是高并发?
通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。

2、什么是正向代理和反向代理?
正向代理隐藏真实客户端
正向代理,就是一个位于客户端和原始服务器之前的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并且指定目标(原始服务器),然后代理向原始服务器转交请求
并将获得的内容返回给客户端,客户端才能使用正向代理。

反向代理隐藏真实服务端
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不
需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效
率。

反向代理方式是指以代理服务器来接收internet网上的连接请求,然后将请求转发给内部网络上的服务器,并从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服
务器对外就表现为一个节点服务器。

3、什么是负载均衡?
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

负载均衡服务器(load-balancingserver)是进行负载分配的服务器。通过负载均衡服务器,将服务请求均衡分配到实际执行的服务中,从而保证整个系统的响应速度。

4、什么是缓存服务器?
缓存指的是将需要频繁访问的网络内容存放在离用户较近、访问速度更快的系统中,以提高内容访问速度的一种技术。缓存服务器就是存放频繁访问内容的服务器。
Web缓存服务器的应用模式主要是正向代理和反向代理。正向代理(Proxy)模式是代理网络用户访问internet,客户端将本来要直接发送到internet上源服务器的连接请求发送给代理
服务器处理。正向代理的目的是加速用户在使用浏览器访问Internet时的请求响应时间,并提高广域网线路的利用率。正向代理浏览器无需和该站点建立联系,只访问到Web缓存即可。
通过正向代理,大大提高了后续用户的访问速度,使他们无需再穿越Internet,只要从本地Web缓存就可以获取所需要的信息,避免了带宽问题,同时可以大量减少重复请求在网络上
的传输,从而降低网络流量,节省资费。
反向代理(Reverse Proxy)模式是针对Web服务器加速功能的,在该模式中,缓存服务器放置在web应用服务器的前面,当用户访问web应用服务器的时候,首先经过缓存服务器,并将用
户的请求和应用服务器应答的内容写入缓存服务器中,从而为后续用户的访问提供更快的响应。 

安装nginx过程:
第一步:下载、上传到服务器后
 
第二步:安装依赖包:
yum install pcre-devel automake make zlib zlib-devel gcc-c++ libtool openssl openssl-devel -y    

第三步:解压到指定位置
tar -zxvf nginx-1.20.2.tar.gz -C /usr/local/

第四步:新建用户名nginx
useradd nginx -s /sbin/nologin -M

第五步:开始编译:
./configure \
> --user=nginx \                                 #指定程序运行时的用户
> --group=nginx \                                #指定程序运行时的用户组
> --prefix=/usr/local/nginx \                       #指定安装目录
> --with-http_ssl_module  \                         #启用ngx_http_ssl_module支持(使其支持https请求)
> --with-http_sub_module  \                       #启用ngx_http_sub_module支持(允许用一些其他文本代替nginx响应中的一些文本)
>--with-http_stub_status_module \                #启用ngx_http_stub_status的支持,可以获取自上次启动以来的工作状态
> --with-http_gzip_static_module \               #启用ngx_http_gzip_static_module支持,(在线实时压缩输出数据流)
>--with-pcre                                      #启用pcre库

make && make install


第六步:启动nginx
1、检查语法:/usr/local/nginx/sbin/nginx -t 
2、启动nginx: /usr/local/nginx/sbin/nginx
3、查看端口:lsof -i :80
4、浏览器访问测试:192.168.31.136  出现welcome to nginx  安装成功!

/usr/local/nginx/sbin/nginx -t  检查nginx语法
/usr/local/nginx/sbin/nginx   开启nginx
/usr/local/nginx/sbin/nginx -s stop  关闭nginx
/usr/local/nginx/sbin/nginx -s reload 重启nginx

目录结构:
├── client_body_temp
├── conf                           #nginx所有配置文件目录
│   ├── fastcgi.conf               #fastcgi的配置文件
│   ├── fastcgi.conf.default
│   ├── fastcgi_params             #fastcgi的参数配置文件
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf                 #nginx主配置文件
│   ├── nginx.conf.default         #nginx默认配置文件
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp
├── html                          #nginx的首页文件配置目录(编译安装)
│   ├── 50x.html                  #nginx的错误提示页面
│   └── index.html                #nginx的默认首页文件
├── logs
│   ├── access.log                #访问日志文件
│   ├── error.log                 #错误日志文件
│   └── nginx.pid                 #pid文件
├── proxy_temp     
├── sbin                          #所有命令配置文件
│   └── nginx                     #启动nginx的命令
├── scgi_temp                     #nginx的临时目录
└── uwsgi_temp


创建基于域名的主机方法:
第一步:创建发布目录和发布文件。
mkdir -p /www/{web/,blog/}
[root@localhost www]# echo "welcome to wenge's web-server">>web/index.html
[root@localhost www]# echo "welcome to wenge's blog-server">>blog/index.html

第二步:修改主配置文件:
 cd /usr/local/nginx/conf/
vim nginx.conf

添加以下内容:(在默认server模块结束后面添加)
server {
        listen       80;
        server_name  blog.wenge.com blog1.wenge.com blog2.wenge.com;      #可以是多个域名并列,域名之间用空格 隔开,
              location / {
            root   /www/blog;
            index  index.html index.htm;
        }
  }

server {
        listen       80;
        server_name  web.wenge.com;    
              location / {
            root   /www/web;
            index  index.html index.htm;
        }
  }
  
第三步:重启nginx
/usr/local/nginx/sbin/nginx -s reload

第四步:添加hosts文件
vim /etc/hosts
添加以下内容:
192.168.31.136  web.wenge.com        #IP为服务器IP
192.168.31.136  blog.wenge.com

第五步:在本机设置hosts文件
C:\Windows\System32\drivers\etc
找到hosts文件并添加内容为:
192.168.31.136  web.wenge.com       
192.168.31.136  blog.wenge.com

第六步:访问域名
web.wenge.com
blog.wenge.com


正则表达式
是一种文本模式,或者说是一种特殊的字符串模式,作用是处理字符串
字符                                    含义
\                            转义符,将特殊字符或符号的意义去除
.                            代表任意一个字符
*                            重复0次或者多次*前的一个字符
[]                            字符的集合
.*                            匹配所有字符
^                            匹配某字符的开头
$                            匹配某字符的结尾
^$                            匹配空行
[^]                            取反
^.*                            匹配多个任意字符的开头
|                            或
[A-Z]                        26个大写字母
[a-z]                        26个小写字母
[0-9]                        0-9的数字
\d                            匹配一个数字字符
\w                            匹配包括下划线的任意单词字符
\b                             匹配单词的开始或结束
+                            重复一次或多次
?                            重复0次或一次
{n}                            重复n次
{n,m}                        重复n到m次

grep/egrep、sed、awk

grep:是一个强大的文本搜索工具        egrep -v "#|^$" nginx.conf>nginx.conf.new
grep [选项] 条件表达式 文件名
-c        只输出匹配行的列数
-I         不区分大小写(只适用于单字符)
-l         查询多文件时只输出包含匹配字符的文件名
-n         显示匹配行及其行号
-s         不显示不存在或无匹配文本错误信息
-v         显示不包含匹配文本的所有行

sed 是一种流编辑器,用于过滤或转换文本。 sed -n‘9p’
sed[选项] ‘command’文件名
-n:取消默认输出
-i:修改文件内容

command选项
d      删除
p     打印
s     替换指定字符
g    全局替换

优化nginx:
1、去注释符号:
egrep -v “#|^$" nginx.conf> nginx.conf.new
2、开启日志功能:(每个虚拟主机一个日志)
在主配置文件中:去掉日志的注释
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
在虚拟主机分配置文件中添加以下内容:
access_log usr/local/nginx/logs/access_web.log;

检查语法:/usr/local/nginx/sbin/nginx -t

3、设置缓存
图片、视频、音频、JS模块、压缩文件都可设置成缓存,缓存存放在客户访问设备上
在虚拟主机配置文件中添加以下内容: (用于图片缓存)
location ~ .*\.(gf|jpg|jpeg|png|bmp|ico)$ {
 root /www/web/;
 expires 30d;}
4、优化nginx错误页面。
首先,创建一个错误提示页面在发布目录
cd /www/web/;
echo "this page has been lost.please try again later" >errors.html 

其次,在虚拟主机配置文件中添加以下内容。
error_page 403 =errors.html;

最后,重启nginx服务
/usr/local/nginx/sbin/nginx -s reload

5、配置nginx支持php
配置 Nginx 支持php 解析
vim /usr/local/nginx/conf/vhost/web.conf
添加以下内容:
location ~ \.php$ {
    root                    html;
    fastcgi_pass            127.0.0.1:9000;
    fastcgi_index           index.php;
    fastcgi_param           SCRIPT_FILENAME      /www/web$fastcgi_script_name;
    #将/scripts修改为nginx的发布目录
    include                 fastcgi_params;
}


/usr/local/nginx/sbin/nginx  -s  reload

验证PHP  测试页
vim   /www/web/index.php

<?php
phpinfo();
?>

浏览器访问
http://web.wenge.com/index.php

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值