Nginx web服务器入门及其在Linux中的搭建

目录

​编辑

一、Nginx基本概述

1.介绍

2.优点

3.应用场景

(1)负载均衡

(2)代理缓存

(3)静态资源

(4)安全应用场景

4.Nginx的组成

(1)Nginx二进制可执行文件

(2)Nginx.conf文件

(3)access.log

(4)error.log

二、Nginx的部署

1.安装方法

(1)源码编译

(2)epel仓库

(3)官方仓库

2.安装Nginx依赖

3.配置Nginx源

4.安装Nginx服务

5.检查Nginx版本

6.Nginx目录结构

三、Nginx目录结构

1.主配置文件

(1)/etc/nginx.conf

(2)/etc/nginx/conf.d/default.conf

2.代理配置文件

(1)/etc/nginx/fastcgi_params

(2)/etc/nginx/scgi_params

(3)/etc/nginx/uwsgi_params

3.编码配置文件

(1)/etc/nginx/win-utf

(2)/etc/nginx/koi-utf

(3)/etc/nginx/koi_win

(4)/etc/nginx/mime.types

4.Nginx管理命令文件

(1)/usr/sbin/nginx

(2)/usr/sbin/nginx-debug

5.Nginx日志相关文件

(1)/var/log/nginx

(2)/etc/logrotate.d/nginx

四、Nginx基本配置

1.主配置文件配置

2.Global全局模块

3.Events事件模块

4.HTTP核心模块

5.检查配置语法重启服务生效

6.核心模块的总结


一、Nginx基本概述

1.介绍

nginx是一个开源、高性能,可靠的HTTP WEB服务、代理服务

2.优点

高性能、高并发、搞扩展,高可靠、热部署、应用广泛、拥有高效网络模型

3.应用场景

(1)负载均衡

(2)代理缓存

(3)静态资源

(4)安全应用场景

4.Nginx的组成

(1)Nginx二进制可执行文件

是nginx本身的框架以及相关模块等构建的一个二进制文件,所有功能都由他提供

(2)Nginx.conf文件

功能是否开启,开之后用何种方式处理请求,就由它来决定

(3)access.log

会记录HTTP的请求信息,响应信息

(4)error.log

当出现一些不可预期的问题,这个文件可以将问题找到

二、Nginx的部署

1.安装方法

(1)源码编译

版本随意,安装复杂,升级繁琐

(2)epel仓库

版本低,安装简单,配置可读性不高

(3)官方仓库

常用方法,版本新,安装简单,配置可读性高

2.安装Nginx依赖

[root@oldxu ~] yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools

3.配置Nginx源

[root@oldxu ~] vim /etc/yum.repos.d/nginx.repo
 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

4.安装Nginx服务

[root@oldxu ~] yum install nginx -y 
[root@oldxu ~] systemctl enable nginx 
[root@oldxu ~] systemctl start nginx

5.检查Nginx版本

#检查版本
nginx -v

# 检查编译参数
nginx -V

6.Nginx目录结构

rpm -ql nginx

三、Nginx目录结构

1.主配置文件

(1)/etc/nginx.conf

配置文件,nginx主配置文件

(2)/etc/nginx/conf.d/default.conf

配置文件,默认网站配置文件

2.代理配置文件

(1)/etc/nginx/fastcgi_params

配置文件,fastcgi代理配置文件

(2)/etc/nginx/scgi_params

配置文件,scgi代理配置文件

(3)/etc/nginx/uwsgi_params

配置文件,uwsgi代理配置文件

3.编码配置文件

(1)/etc/nginx/win-utf

配置文件、nginx编码转换映射文件

(2)/etc/nginx/koi-utf

配置文件、nginx编码转换映射文件

(3)/etc/nginx/koi_win

配置文件、nginx编码转换映射文件

(4)/etc/nginx/mime.types

content-Type与扩展名

4.Nginx管理命令文件

(1)/usr/sbin/nginx

命令,nginx命令行管理终端工具

(2)/usr/sbin/nginx-debug

命令,nginx命令行管理终端工具

5.Nginx日志相关文件

(1)/var/log/nginx

目录,nginx默认存在日志目录

(2)/etc/logrotate.d/nginx

配置文件,nginx默认的日志切割

四、Nginx基本配置

1.主配置文件配置

[root@oldxu ~]vim /etc/nginx/nginx.conf

#全局
user nginx;  #nginx的运行身份为nginx用户;
worker_processes 2; #启动的worker进程数量;
error_log /var/log/nginx/error.log warn;# 错误日志的路径;从warning;
pid /var/run/nginx.pid;# 存储进程的pid Number

# 4c *16GB
events {
    worker_connections 1024; # 一个worker最大连接数,worker_connections * worker_processes = 最大连接数
    use epoll; # 默认是采用epoll网络IO模型;
}

# 主要负责接受与响应http请求
http {
      include /etc/nginx/mime.types;
# 支持的类型:
      default_type application/octet-stream;

#默认类型(下载的方式)
# 1.提供下载包zip
# 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 /var/log/nginx/access.log
 main;
sendfile on;

#tcp_nopush on;
keepalive_timeout 65;

#长连接超时时间;
#gzip on;
include_/etc/nginx/conf.d/*.conf;

#包含的子文件;
}
######
#一个server就是一个站点
server {
   listen 80; # 监听的端口
   server_name www.oldxu.net; #站点的域名
   location / { #uri路径匹配的
   root /usr/share/nginx/html; #root:定义网站的路径;
   index
 index.html index.htm; #index:定义默认返回的页面;
# root+index =
 /usr/share/nginx/html/index.html;
   }
}

# 一个server就是一个站点
server {
   listen 80; # 监听端口80
   server_name www.oldxu.net; #站点的域名
   location / { #uri路径匹配的
      root /usr/share/nginx/html; #root:定义网站的路径;
      index index.html index.htm;
#index:定义默认返回的页面;
# root+index
/usr/share/nginx/html/index.html;
   }
}

2.Global全局模块

user www; #Nginx进程所使用的用户
worker_processes 1; #Nginx运行的
work进程数量(建议与CPu数量一致或auto)
error_log /log/nginx/error.log #Nginx错误日志存放路径
pid /var/run/nginx.pid #Nginx服务运行后产生的pid进程号

3.Events事件模块

events {
     worker_connections 25535;#每个worker进程支持的最大连接数
     use epoll; #事件驱动模型,epol1默认
}

4.HTTP核心模块

http { #http层开始
#使用Server配置网站,每个server{}代表一个网
站(简称虚拟主机)
   'server' {
       listen 80; #监听端口,默认80
       server_name bgx.com; #提供的域名
       access_log access.log; #该网站的访问日志
       
#控制网站访问的路径
 'location' / {
        root /usr/share/nginx/html; #存放网站源代码的位置
        index index.html index.htm; #默认返回网站的文件
}
...

#第二个虚拟主机配置
   'server' {
        }
    include /etc/nginx/conf.d/*.conf;#包
含/etc/nginx/conf.d/目录下所有以.conf结尾的文件
   #include作用是:简化主配置文件写太多造成臃肿,
这样会让整体的配置文件更加的清晰。
} 
#http层结束

5.检查配置语法重启服务生效

[root@oldxu code] nginx -t
[root@oldxu code] systemctl restart nginx

6.核心模块的总结

http标签主要用来解决用户的请求与响应

server标签主要用于响应具体的某一个网站

location标签主要用于匹配网站具体URI路径

http{}下允许有多个server{},一个server{}下又允许又多个location{}

猜你喜欢

转载自blog.csdn.net/qq_60503432/article/details/128626606