目录
1.关闭防火墙,将安装nginx所需软件包传到/opt目录下
3.创建运行用户、组(Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确的控制访问权限)
--------认识Nginx服务的主配置文件 nginx.conf--------
1.先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块
2.修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
--------基于域名的 Nginx 虚拟主机--------
--------基于IP 的 Nginx 虚拟主机--------
--------基于端口的 Nginx 虚拟主机--------
编译安装nginx服务
1.关闭防火墙,将安装nginx所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
nginx-1.24.0.tar.gz
2.安装依赖包
#indinx的配置及运行需要
yum -y install prce zlib openssl-devel gcc gcc-c++ make
3.创建运行用户、组(Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确的控制访问权限)
useradd -M -s /sbin/nologin nginx
4.编译安装Nginx
cd /opt
tar zxvf nginx-1.21.0.tar.gz -C /opt/
cd nginx-1.21.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令
5.检查、启动、重启、停止nginx服务
nginx -t #检查配置文件是否配置正确
#启动
nginx
#停止
cat /usr/local/nginx/logs/nginx.pid
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
make upqrade #要保证当前nginx进程是通过/usr/local/nginx/sbin/nginx启动的,而不是通过查找环境变量中那个nginx命令启动的
#或者先killall nginx,再/usr/local/nginx/sbin/nginx
6.添加Nginx系统服务
方法一:
#!/bin/bash
#chkconfig:35 22 88
#desc: this is nginx service control scprit
CMD="/usr/local/nginx/sbin/nginx"
PIDFILE="/usr/local/nginx/logs/nginx.pid"
COUNT=$(ps -ef | egrep -v "service|grep|$$" | grep -c "nginx" )
case "$1" in
start)
#netstat -lntp l grep nginx
#if [$?-eq 0 ]
#ps -ef l egrep -v "grep|$$” l grep "nginx"
if [ $COUNT -ge 1 ]
then
echo "Nginx 已经启动....."
else
echo "Nginx 正在启动....."
$CMD
fi
;;
stop)
kill -s QUIT $(cat $PIDFILE)
;;
restart)
s0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDFILE)
;;
status)
#if killall -0 nginx &> /dev/null
if [ $COUNT -ge 1 ]
then
echo "Nginx is running......"
fi
方法二:
cd /usr/lib/systemd/system/nginx.service
[Unit]:服务的说明
Description:描述服务
After:依赖,当依赖的服务启动之后再启动自定义的服务[Service]服务运行参数的设置
Type=forking是后台运行的形式,使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程。
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径[Install]服务安装的相关设置,可设置为多用户
chmod 754 /lib/systemd/system/nginx.service
cd /etc/init.d
把之前的脚本改名字和删除都可以
然后重启
reboot
systemctl stop httpd
就可以用systemctl指令了
systemctl start nginx
--------认识Nginx服务的主配置文件 nginx.conf--------
1、全局块:全局配置,对全局生效;
2、events块:配置影响 Nginx 服务器与用户的网络连接;
3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
4、server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;
5、location块:用于配置匹配的 uri ;
6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。
vim /usr/local/nginx/conf/nginx.conf
1.全局配置
#user nobody; #运行用户,若编译时未指定则默认为 nobody
worker_processes 1; #工作进程数量,一般设置为和 CPU 核数一样;设置为auto,nginx将会自己获取这个数值
#error_log logs/error.log; #错误日志文件的位置
#pid logs/nginx.pid; #PID 文件的位置
worker_rlimit_nofile 60000; #设置所有worker进程最大可以打开的文件数,默认为1024