第一步,安装nginx依赖库
安装之前,自己下载的软件压缩包的位置,可以自己选择进行调整
cd /usr/local/src
小贴士:
不要把压缩包解压到/usr/local/nginx目录下,或者将解压后的目录重命名为nginx,因为nginx会默认安装到/usr/local/nginx目录下
(1)请确认gcc 与 g++开发类库是否装好。
yum -y install gcc automake autoconf libtool make(安装make)
yum install gcc gcc-c++(安装g++)
(2)安装openssl
wget http://www.openssl.org/source/openssl-fips-2.0.16.tar.gz(下载openssl)
tar -zxvf openssl-fips-2.0.16.tar.gz
cd openssl-fips-2.0.16
./config && make && make install
(3)安装pcre
wget https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
cd pcre-8.43
./configure && make && make install
(4)安装zlib
wget http://zlib.net/zlib-1.2.11.tar.gz(下载zlib)
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure && make && make install
上述方式属于编译安装,也可以用yum方式安装openssl、pcre、zlib
yum -y install openssl openssl-devel
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
第二步,开始安装Nginx
wget http://nginx.org/download/nginx-1.15.0.tar.gz(下载nginx)
tar -zxvf nginx-1.15.0.tar.gz
cd nginx-1.15.0
./configure && make && make install
安装好nginx之后,不要着急去启动,特别不要用下面方式启动
cd /usr/local/nginx/sbin/(进入nginx安装目录)
如果先启动了nginx怎么办,先杀掉所有nginx进程即可,方法如下
ps -ef|grep nginx
kill -9 进程号
正确做法是配置nginx的服务(开机自动启动)
(1)切换到/lib/systemd/system/目录,创建nginx.service文件vim nginx.service
cd /lib/systemd/system/
vim nginx.service
nginx.service的文件内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
退出并保存文件,执行下面的命令使nginx开机启动
systemctl enable nginx.service
设置nginx环境变量
在/etc/profile 中加入
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
保存文件之后
执行 source /etc/profile
,使配置文件生效。
更多nginx命令
systemctl start nginx.service #启动nginx
systemctl stop nginx.service #结束nginx
systemctl restart nginx.service #重启nginx
systemctl status nginx.service #查看nginx启动状态
systemctl status firewalld #查看防火墙状态
如果不是购买的阿里云服务器,此时就可以验证nginx安装是否成功了,验证方法在浏览器输入
http://服务器公网IP/
如果能看到nginx的界面,就表示安装成功了
如果是购买的阿里云服务器,还需要进入阿里云服务器的控制台设置,安全组,配置规则
新买的服务器是没有http,80端口配置的
添加安全组规则如下
大功告成
认识nginx的配置文件
1、位置
vim /usr/local/nginx/conf/nginx.conf
2、配置文件中的内容(包含三部分)
(1)全局块:配置服务器整体运行的配置指令
从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配
置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以
及配置文件的引入等。
比如上面第一行配置的:
这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是
会受到硬件、软件等设备的制约
(2)events 块:影响 Nginx 服务器与用户的网络连接
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process
下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word
process 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024.
这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
(3)http 块
这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是:http 块也可以包括 http 全局块、server 块。
①、http 全局块
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
②、server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了
节省互联网服务器硬件成本。
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
location 块
一个 server 块可以配置多个 location 块。
这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称
(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓
存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
关于location块,这个块是用于匹配URL
location [ = | ~ | ~* | ^~ ] uri {
}
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location
块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~ 标识*。