目录
1、安装准备
增加系统参数:
安装openssl:
2、安装PCRE库
3、安装jemalloc内存管理工具
4、安装nginx
5、配置nginx参数
测试配置文件是否有效
添加自启动脚本
添加自启动脚本可执行权限
添加到自启动
关闭防火墙
centos9中守护进程错误解决
启动nginx:
下载pcre:Index of /project/pcre/pcre2https://jaist.dl.sourceforge.net/project/pcre/pcre2/
下载jemalloc:https://github.com/jemalloc/jemalloc/tagshttps://github.com/jemalloc/jemalloc/tags
下载nginx: nginx: downloadhttps://nginx.org/en/download.html
使用管理员权限编辑/etc/security/limits.conf,加入:
* soft nofile 16384
* hard nofile 65536
sudo vi /etc/security/limits.conf
sudo yum -y install openssl openssl-devel
PCRE(Perl Compatible Regular Expressions)是一个Perl库,pcre库可以使nginx支持具备URL重写功能的rewrite模块,同时包含了perl兼容的正则表达式库。
解压安装包并进入到解压后的目录:
tar -zxvf pcre2-10.36.tar.gz
cd pcre2-10.36
执行./configure脚本,进行设定源程序符合该操作系统的特性。
./configure
执行make命令进行源程序编译
make
使用管理员权限执行make isntall进行安装
sudo make install
设置类库的软链接,使其在系统中生效(重要)
sudo ln -s /usr/local/lib/libpcre2-8.so.0 /lib64/.
解压内存管理工具软件并进入到解压目录:
sudo ln -s /usr/local/lib/libpcre2-8.so.0 /lib64/.
tar -xvjf jemalloc-5.2.1.tar.bz2
cd jemalloc-5.2.1
执行./configure脚本,进行设定源程序符合该操作系统的特性。
./configure
使用make命令编译源程序
make
使用管理员权限执行 make install
sudo make install
设置工具的软连接使在系统中生效
sudo ln -s /usr/local/lib/libjemalloc.so.2 /lib64/.
解压nginx源码压缩包并进入解压后目录:
tar -xvzf nginx-1.22.0.tar.gz
cd nginx-1.22.0
执行configure脚本
./configure
执行make命令进行编译
make
使用管理员权限执行 make install进行安装
sudo make install
使用管理员权限编辑nginx.conf配置文件
sudo vi /usr/local/nginx/conf/nginx.conf
#设置运行账号
user nobody;
#设置使用的cpu数
worker_processes auto;
#打开错误日志
error_log logs/error.log error;
#设置pid位置
pid logs/nginx.pid;
#设置文件限制
worker_rlimit_nofile 16384;
#设置工作模式
events{
use epoll;
worker_connections 16384;
}
#在http段下加入
server_names_hash_bucket_size 128;
client_header_buffer_size 16k;
large_client_header_buffers 4 32k;
client_body_buffer_size 512k;
#增大文件上传最大尺寸,
client_max_body_size 200M;
#增大代理缓冲区
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
#打开gzip压缩,在http段下加入
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript application/javascript text/javascript text/css application/xml text/xml;
cd /usr/local/nginx/sbin
sudo ./nginx -t
增加nginx自启动脚本/etc/init.d/nginx
使用管理员权限编辑
sudo vi /etc/init.d/nginx
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
pidfile=/usr/local/nginx/logs/nginx.pid
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status -p $pidfile $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
start
;;
stop)
rh_status_q || exit 0
stop
;;
restart|configtest)
restart
;;
reload)
rh_status_q || exit 7
reload
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
;;
esac
sudo chmod +x /etc/init.d/nginx
sudo chkconfig --add nginx
sudo chkconfig nginx on
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
或开放防火墙端口
centos9启动的时候会出现守护进程的错误,需要安装initscripts解决守护进程报错问题。
sudo yum install initscripts
sudo /etc/init.d/nginx start
【停止|重启|查看状态】:
sudo /etc/init.d/nginx [stop|restart|status]
通过浏览器访问nginx:
http://IP