二、Nginx的安装
2.1 Linux系统安装Nginx
首先,下载他需要的几个依赖:
我们先联网下载pcre的依赖包。
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
然后解压:
tar zxvf pcre-8.45.tar.gz
然后进入目录下运行他的.configure文件:
cd pcre-8.45/
./configure
然后编译和安装pcre:
make && make install
我们还可以使用下面指令检验是否真的已经安装完成:(完成的话,他会输出对应的版本号)
pcre-config --version
接着,我们就可以下载其他的依赖了,指令如下:
yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel openssl-devel
然后下载Nginx官网的压缩包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
解压压缩包:
tar zxvf nginx-1.18.0.tar.gz
解压完,同样的,我们进入解压后的文件夹下,然后运行他的.configure文件,然后编译,安装:
cd nginx-1.18.0/
./configure
make && make install
安装完nginx后,我们在我们的/usr/local下看到多了一个叫nginx的文件夹。我们可以运行一下他里面sbin目录下的启动文件,看看nginx是否安装成功且能正常运行。
cd /usr//local/nginx/sbin/
./nginx
ps -ef | grep nginx
我们可以看到nginx的进程如下:
我们顺便来访问一下我们的Nginx,怎么访问呢,我们先看看他的配置文件吧:
cd …/conf
vim nginx.conf
可以看到,他监听的端口号是80
我们可以来访问一下,我使用的是腾讯云的轻量应用服务器上的Linux下载的Nginx,只需要通过访问他提供的公网的ip地址就可以直接访问,结果如下:
如果访问失败的话,可能是防火墙并没有开放对应端口的访问。我们通过以下指令来查看防火墙开放的端口:
firewall-cmd --list-all
这里腾讯云默认给我开放了80、21、22、80、8888、39000——40000的端口
如果没有怎么办呢?简单,直接给指令:
sudo firewall-cmd --add-port=80/tcp --permanent
如果要开放其他的端口,也可以使用以下指令,修改一下80即可。比如我要开放8080端口,那么指令就是:
sudo firewall-cmd --add-port=8080/tcp --permanent
当然了,设置完成后,还要记得重启一下我们的防火墙:
firewall-cmd --reload
2.2 Nginx常用的命令
注意:要使用nginx命令,我们必须在nginx的目录下(/usr/src/nginx/sbin/)。
命令 | 作用 |
---|---|
./nginx -v | 查看nginx版本号 |
./nginx | 启动nginx |
./nginx -s stop | 关闭nginx |
./nginx -s reload | 重新加载nginx |
2.3 nginx的配置文件
nginx的配置文件位置:
/usr/local/nginx/conf/nginx.conf
nginx配置文件的三个组成部分:
-
全局块:从配置文件开头到events块之间的内容,主要会设置一些响应nginx服务器整体运行的配置指令。
比如语句:
worker_processes 1;
他的值越大,能处理的并发处理数量就越多。
-
events块:主要影响Nginx服务器和用户之间网络的连接。
比如语句:
worker_connections 1024;
配置支持的最大连接数为1024。
-
http块:Nginx服务器中配置最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。(http块也可以包括http全局块和server块)
http { #http全局块 include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #server块 server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
其中,
http全局块配置的指令包含文件引入、MIME-TYPE 定义、日志自定义、链接超时时间、单链接请求数上线等等。
server块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的生产是为了节省互联网服务器硬件成本。