Nginx的安装(Windows和Linux)
一:Nginx安装(Windows)
官网地址:
https://nginx.org/en/download.html
解压完成后,文件目录如下:
启动Nginx:
直接双击目录下的nginx.exe,即可启动nginx服务器
或者cmd命令,进入D:\Nginx\nginx-1.18.0目录下 nginx.exe运行
访问Nginx:
打开浏览器,输入 http://localhost 访问页面,出现如下图表示访问成功
停止Nginx:
# 强制停止nginx服务器,如果有未处理的数据,丢弃
D:\Nginx\nginx-1.18.0>nginx -s stop
#优雅的停止Nginx服务器,如有未处理的数据,等待处理完成停止
D:\Nginx\nginx-1.18.0>nginx -s quit
二:Nginx安装(Linux)
在安装Nginx前,先检查是否安装Nginx相关的依赖 gcc、pcre、openssl、zlib
使用如下命令:
1:rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"
2:以deb包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep "软件或者包的名字"
3:yum方法安装的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "软件名或者包名"
举例:查看是否安装了gcc
yum list installed | grep 'gcc'
这里确认没有安装
下载安装Nginx需要的依赖,下载后
1:下载安装gcc
yum install -y gcc-c++
2:下载安装pcre(Perl Compatible Regular Expressions)依赖:
pcre是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,
所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库
yum install -y pcre pcre-devel
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
完成后解压tar -xvf 目录名,解压后执行./configure检查 再执行make && make install进行编译
3:下载安装zlib依赖:
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库
yum install -y zlib zlib-devel
4:下载安装openssl依赖:
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,
并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),
所以需要在 Centos 安装 OpenSSL 库
yum install -y openssl openssl-devel
2:安装其他的依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
3:一次性安装以上所有依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
使用xshell上传Nginx nginx-1.18.0.tar.gz安装包,解压命令:tar -xvf nginx-1.18.0.tar.gz
进入解压后的文件目录 执行./configure检查,再执行make && make install进行编译
完成后,在usr目录下会多出一个文件夹 local/nginx,在nginx中有sbin
启动nginx:cd /usr/local/nginx/sbin 执行./nginx后启动
可以查下nginx的进程:ps -ef | grep nginx
完成后访问nginx,可能出现不能访问,可以关闭防火墙或者设置开放端口号
iptables
查看防火墙状态 :systemctl status firewalld
开启防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
重启防火墙:systemctl restart firewalld
firewalld
在未关闭防火墙的情况下 在xshell中查看开放端口号:firewall-cmd --list-all
设置开放端口号:sudo firewall-cmd --add-port=80/tcp --permanent
重启防火墙:firewall-cmd --reload
三:Nginx配置介绍
Nginx服务器的配置信息主要集中在nginx.conf文件中,由以下三部分组成
第一部分:全局块
从配置文件开始到events块之间的内容,主要设置一些影响Nginx服务器整体运行的配置指令
如:worker_processes 1; 这是Nginx服务器处理并发服务的关键配置,值越大,支持的并发处理量也越多
但是会受到硬件、软件等设备的制约
第二部分:events块
events块主要影响Nginx服务器与用户的网络连接,是否允许同时接收多个网络连接
如下图:worker_connections 1024; 支持最大连接数
第三部分:http块
http块是Nginx服务器配置最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里
需注意:http块中包括http全局块、server块
1:http全局块
配置的指令包括文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求上限等
2:server块
server块和虚拟主机有密切关系,每个http块可以有多个server块,而每一个server块就相当于一个虚拟主机
而每个server块也可以分为全局server块,以及同时有多个location块
2.1 :server全局块
最常见的配置是本虚拟主机的监听配置和本虚拟主机的名称或IP配置
2.2: location块
location块主要作用是基于Nginx服务器接收到的请求字符串(例如:server_name/uri-string),对虚拟主机名称
(也可以是IP别名)之外的字符串(例如前面的uri-string)进行匹配,对特定的请求进行处理。
地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里
location指令说明:该指令用于匹配URL,如下
Nginx - location指令详解