Nginx网站服务

目录

一、Nginx概述

1.什么是 Nginx

2.Nginx并发连接        

3.Nginx 应用场景

二、安装 Nginx 服务

三、Nginx配置文件

1.全局配置

2.I/O 事件配置

3、HTTP 配置

 4、日志格式设定

四、访问控制

基于客户端的访问控制

五、虚拟主机

 1.基于域名的Nginx虚拟主机

 2.基于端口的虚拟主机

 3.基于不同IP访问


一、Nginx概述

1.什么是 Nginx

一款高性能、轻量级Web服务软件

  • 稳定性高
  • 系统资源消耗低
  • 对HTTP并发连接的处理能力高(单台物理服务器可支持30 000~50 000个并发请求)
  • #(实际并发数大概在2-3万之间)

2.Nginx并发连接        

        NG并发连接能力受以下二个因素的影响:

        CPU个数

        本地物理服务器系统的最大文件打开数

3.Nginx 应用场景

  • 静态服务器(图片,视频服务)
  • 动态服务
  • 反向代理,负载均衡
  • 缓存服务

二、安装 Nginx 服务

手动安装详见  《部署LNMP架构&论坛》  之      四、安装 Nginx 服务

部署LNMP架构&论坛_啊啊啊啊啊建的博客-CSDN博客

这里提供自动安装脚本  (安装包自行下载,若版本不同请更改脚本内容)

#!/bin/bash
####关闭防火墙,关闭核心防护####
###试验环境:CentOS 7.6   Nginx 1.15   ###
echo "关闭防火墙,关闭核心防护"
systemctl stop firewalld
systemctl disable firewalld &> /dev/null
setenforce 0

###安装nginx####
yum install -y gcc gcc-c++ make pcre pcre-devel expat-devel perl zlib zlib-devel &> /dev/null
useradd -M -s /sbin/nologin nginx
cd /opt
tar zxvf nginx-1.15.9.tar.gz
cd nginx-1.15.9
echo " nginx正在编译安装"
./configure  --prefix=/usr/local/nginx  --user=nginx  --group=nginx  --with-http_stub_status_module &> /dev/null
make && make install  &> /dev/null
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

echo "
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target" >> /lib/systemd/system/nginx.service

chmod 754 /lib/systemd/system/nginx.service

systemctl daemon-reload
systemctl start nginx
echo "正在启动nginx服务"

三、Nginx配置文件

  Nginx配置文件管控的层次结构
        1.gloabl:全局生效的配置
        2.协议 http { }
        Nginx主要控制的就是HTTP层面
        3. server { }
        具体匹配进入nginx的相关配置
        4.location { }
        主要用于匹配URL并基于匹配到的URL做相关处理

1.全局配置

vim /usr/local/nginx/conf/nginx.conf
#user nobody;                 #运行用户,若编译时未指定则默认为 nobody
worker_processes 1;           #工作进程数量,可配置成服务器内核数 * 2
#error_log logs/error.log;    #错误日志文件的位置
#pid logs/nginx.pid;          #PID 文件的位置

Nginx网站服务_第1张图片

2.I/O 事件配置

events {
    use epoll;                  #使用 epoll 模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能
    worker_connections 4096;    #每个进程处理 4096 个连接
}
#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制.

 Nginx网站服务_第2张图片

使用ulimit -a 查看每个进程数可处理的文件数

Nginx网站服务_第3张图片

3、HTTP 配置

http {
    ##文件扩展名与文件类型映射表
    include       mime.types;
 
    ##默认文件类型
    default_type  application/octet-stream;
 
    ##日志格式设定
    #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  logs/access.log  main;
 
    ##支持文件发送(下载)
    sendfile        on;
    ##此选项允许或禁止使用socke的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    #tcp_nopush     on;
 
    ##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    ##gzip模块设置,设置是否开启gzip压缩输出
    #gzip  on;
 
##Web 服务的监听配置
server {
    ##监听地址及端口
    listen 80; 
    ##站点域名,可以有多个,用空格隔开
    server_name www.lic.com;
 
    ##网页的默认字符集
    charset utf-8;
 
    ##根目录配置
    location / {
    
        ##网站根目录的位置/usr/local/nginx/html
        root html;
    
        ##默认首页文件名
        index index.html index.htm;
    }
    ##内部错误的反馈页面
    error_page 500 502 503 504 /50x.html;
    ##错误页面配置
    location = /50x.html {
        root html;
    }
}
}

Nginx网站服务_第4张图片

 4、日志格式设定

$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;
 
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

 location常见配置指令,root、alias、proxy_pass
 
root(根路径配置):请求www.lic.com/test,会返回文件/usr/local/nginx/html/test/index.html
 
alias(别名配置):请求www.lic.com/test,会返回文件/usr/local/nginx/html/index.html

四、访问控制

基于客户端的访问控制


访问控制规则如下
deny IP/IP段:拒绝某个IP或IP段的客户端访问
allow IP/IP段:允许某个IP或IP段的客户端的访问
规则从上往下执行,如匹配则停止,不再往下匹配

vim /usr/local/nginx/conf/nginx.conf
 location / {
            root   html;
            index  index.html index.htm;
            deny 192.168.131.10;      #拒绝访问的客户端的IP
            allow all;        			#添加允许其他IP客户端访问
        }

vim /usr/local/nginx/conf/nginx.conf

Nginx网站服务_第5张图片

重启nginx
systemctl restart nginx

测试

用192.168.131.10 访问失败

Nginx网站服务_第6张图片

其他地址访问没问题

Nginx网站服务_第7张图片

五、虚拟主机

 1.基于域名的Nginx虚拟主机

添加域名解析

echo "192.168.131.50 www.wu.com www.wxj.com" >> /etc/hosts

data-channel:将数据通道转换为流

zip 正在上传…重新上传取消 0星 超过10%的资源 3KB 

下载

 准备虚拟站点网页文档

创建两个网页文档,配置nginx时指向这两个文档路径

mkdir -p /var/www/html/wu
mkdir -p /var/www/html/wxj
echo "

this is wu

" > /var/www/html/wu/index.html echo "

this is wxj

" > /var/www/html/wxj/index.html

 修改nginx配置文件

    server {
        listen       80;
        server_name  www.wu.com;
        charset utf-8;
        access_log logs/wu.access.log;

        location / {
           root /var/www/html/wu;
           index index.html index.html;
        }

}
    server {
        listen       80;
        server_name  www.wxj.com;
        charset utf-8;
        access_log logs/wxj.access.log;

        location / {
           root /var/www/html/wxj;
           index index.html index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

Nginx网站服务_第8张图片

重启nginx
systemctl restart nginx

测试:

访问   www.wu.com 

 访问  www.wxj.com

Nginx网站服务_第9张图片

 2.基于端口的虚拟主机

创建一个80端口的网页文件和一个8080端口的网页文件

mkdir -p /var/www/html/wu80
mkdir -p /var/www/html/wu8080
echo "

this is wu80

" > /var/www/html/wu80/index.html echo "

this is wu8080/h1>" > /var/www/html/wu8080/index.html

Nginx网站服务_第10张图片

 修改nginx配置文件

Nginx网站服务_第11张图片

 

重启nginx
systemctl restart nginx

测试:

访问 www.wu.com:80 和  www.wu.com:8080 

Nginx网站服务_第12张图片

 3.基于不同IP访问

添加192.168.131.100 映射 

vim /etc/hosts
192.168.131.100 www.wu.com

Nginx网站服务_第13张图片创建192.168.131.100的网站首页文件

mkdir /var/www/html/wu100
echo "

this is wu100

" > /var/www/html/wu100/index.html

临时添加网卡

ifconfig ens33:0 192.168.131.100 netmask 255.255.255.0

Nginx网站服务_第14张图片

修改nginx配置文件

Nginx网站服务_第15张图片

 

重启nginx
systemctl restart nginx

 测试:

访问  192.168.131.50  和   192.168.131.100 

Nginx网站服务_第16张图片

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