nginx与apache的对比
nginx优点
nginx使用场景
编译安装nginx过程
1.先清空opt文件夹
2.关闭防火墙,关闭防护
3 安装依赖包,可以通过本地yum去安装 首先就是挂载,随后切换到配置文件中修改
4本地配置文件配置内容
5 随后安装环境包
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
6 创建一个nginx的用户
7 接下来编译安装,首先切换到opt里面,将在官网下载的包拉入到xshell
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
注意因为是新版的安装包,必须安装openssl-devel
8 下载
9 做一个软连接 为了让系统识别nginx
没做软连接之前,系统识别不了nginx
补充说明:如果正确使用sbin 或bin
查看第三方程序在哪个里面 pwd可以查看,如果在sbin就用sbin 如果在bin,就用bin
解析为什么软连接的的路径 make install生成安装目录 才会有nginx
有两种方法可以识别nginx
1.echo $PATH,将nginx的路径加入到此文件中
2.做软连接
查看语法是否有误
开启nginx进程 并且查看
master process:是nginx的主进程,用来管理worker process进程,并且可以读取配置文件
worker process:工作进程,用来处理客户的连接请求
停止nginx
1.先查看nginx的pid号 pid号在logs目录里面
pid号与主进程号是一样的
杀除进程号
killall -3 nginx中killall是根据进程名杀除,但是会出现误杀。
重载
或者使用nginx的-s选项 可以通过--help查看
如果要停止nginx,可以使用nginx -s quit 随后使用lsof -i :80 去检验
如果想使用重载,则使用nginx -s reload
平滑升级:就是在不关闭nginx的情况下,升级nginx
举例说明,先在官网下载一个最新版本的nginx,1.25
随后,查看自己的nginx版本号,nginx -v
将最新版本的nginx挪到xshell中
然后使用./configuer 跟make 即可 不需要使用make install (怕会被覆盖)
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
随后查看一下,会生成objs的文件夹,此文件夹中,就存在25版本的文件
接下来要做替换,先找到24版本的nginx,改个名字
改完名字之后,再切换到25版本中的objs(因为里面有25版本的nginx的二进制文件)
接着,去24版本的路径中去查看
接着,继续切换到25版本的路径中
最后证实一下
或者通过客户端去访问服务端
日志分割
举例说明: 将多余的移动到别的文件夹中,相关nginx的目录就没有了,使用日志分割,会重新生成新的文件,再次让nginx文件生成
创建nginx自启动文件,或者称为 利用systemctl 去管理nginx
vim /usr/lib/systemd/system/nginx.service
#建立文件
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000[Install]
WantedBy=multi-user.target
[Unit]
Description=The nginx HTTP and reverse proxy server[Service]
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx
ExecStop=/usr/bin/kill -s TERM $MAINPID
ExecReload=/apps/nginx/sbin/nginx -s reload
[Install]
WantedBy=multi-user.target
认识nginx里的主配置文件
全局配置