一、前提条件
获取nginx-1.24.0.tar.gz软件包,及SSL证书文件。
2. 操作步骤
- 以root用户登录需要安装nginx的服务器.
- 检查防火墙是否关闭.
#执行如下命令,查看防火墙状态
su - root
systemctl status firewalld
#若未关闭,执行如下命令关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.关闭SELinux( linux操作系统中默认开启了防火墙,SELinux也处于启动状态,一般状态为enforing,致使很多服务端口默认是关闭的,所以这里将SELinux关闭)
# 执行如下命令,将selinux状态改为disabled
setenforce 0
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config
4.安装依赖
yum install gcc -y
yum install gcc-c++ -y
yum install make -y
yum install perl -y
yum install openssl -y
yum install openssl-devel -y
yum install pcre-devel -y
yum install zlib -y
yum install zlib-devel -y
5.新建操作系统用户,用于安装Nginx服务
useradd -d /data/nginx -s /bin/bash -m nginx
说明:
点击查看代码
-d 主目录名称为{用户目录},{用户目录}为示例,需要根据现场环境修改,不允许直接使用,下文中{用户目录}均代指该用户目录。
-s shell类型,指定用户的登录shell,推荐使用/bin/bash。
-m 用户名,{用户名}为示例,需要根据现场环境进行修改,下文中{用户名}均代指该用户名。
6.设置用户密码
passwd nginx
7.设置新建用户的系统资源限制
vi /etc/security/limits.conf
nginx soft nofile 65535
nginx hard nofile 65535
8.创建文件夹
mkdir -p /data/nginx/.tmp
mkdir -p /data/nginx/logs
mkdir -p /data/nginx/nginx/cert
mkdir -p /data/nginx/nginx/conf/conf.d
9.将安装包上传到/data/nginx/.tmp下
10.解压安装包
cd /data/nginx/.tmp
tar -xvf nginx-1.24.0.tar.gz
11.执行安装nginx
cd /data/nginx/.tmp/nginx-1.24.0
./configure --prefix=/data/nginx/nginx --error-log-path=/data/nginx/logs/error.log --http-log-path=/data/nginx/logs/access.log --user=nginx --group=nginx --with-stream --with-http_ssl_module --with-http_v2_module --with-http_auth_request_module
12.执行安装
make && make install
13.上传server.crt和server.key证书文件到/data/nginx/nginx/cert目录下
cd /data/nginx/nginx/cert
14.配置nginx配置文件
cd /data/nginx/nginx/conf
mv nginx.conf nginx.conf.bak
vi /data/nginx/nginx/conf/nginx.conf
iuser nginx;
worker_processes 1;
error_log /data/nginx/logs/error.log;
pid /data/nginx/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /data/nginx/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '[$time_local] $remote_addr "$http_x_forwarded_for" $remote_user '
'"$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" '
'- $upstream_addr $upstream_status $request_time $upstream_response_time $upstream_connect_time ';
access_log /data/nginx/logs/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include mime.types;
default_type application/octet-stream;
server_tokens off;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /data/nginx/nginx/conf/conf.d/*.conf;
}
15.新增启动脚本
vi /data/nginx/nginx/sbin/start_nginx.sh
i#!/bin/bash
PID=`ps -U $USER -f | grep 'nginx:' | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ]; then
echo "Server already started!"
exit
fi
cd $HOME/nginx/sbin || return
./nginx -c $HOME/nginx/conf/nginx.conf
sleep 5
PID=`ps -U $USER -f | grep 'nginx:' | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ]; then
echo "Starting SUCCESS!"
exit
else
echo "Starting Failed!"
exit 1
fi
16.新增停止脚本
vi /data/nginx/nginx/sbin/stop_nginx.sh
i#!/bin/bash
PID=`ps -U $USER -f | grep 'nginx:' | grep -v grep | awk '{print $2}'`
if [ -n "$PID" ]
then
cd $HOME/nginx/sbin || return
./nginx -c $HOME/nginx/conf/nginx.conf -s stop
echo "Stop SUCCESS!"
else
echo "No server process found"
fi
17.设置环境变量
vi /data/nginx/.bashrc
#在文件最后追加
export NGINX_HOME=/data/nginx/nginx
export PATH=$NGINX_HOME/sbin/:$PATH
alias start-nginx='$NGINX_HOME/sbin/start_nginx.sh'
18.配置nginx日志绕接
- 创建目录
mkdir -p /data/nginx/nginx/conf/logrotate.d
vi /data/nginx/nginx/conf/logrotate.d/nginx.logrotate
i/data/nginx/logs/*.log {
daily
dateext
dateformat -%Y-%m-%d
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 nginx nginx
sharedscripts
postrotate
[ -f /data/nginx/nginx.pid ] && kill -USR1 `cat /data/nginx/nginx.pid`
endscript
}
19.可选)新用户添加crontab权限,open Euler操作系统需要执行此操作
在文件新的一行,输入nginx用户,然后保存文件。
vi /etc/cron.allow
inginx
20.添加定时任务
su - nginx
crontab -e
1 0 * * * /usr/sbin/logrotate -f /data/nginx/nginx/conf/logrotate.d/nginx.logrotate > /dev/null 2>&1
21.修改文件权限
# 切换root用户
chown -R nginx:nginx /data/nginx
chmod -R u+x /data/nginx/nginx/sbin/
22.启动Nginx服务(非root用户)
su - nginx
start-nginx
23.启动Nginx服务(root用户)
# 切换root用户
cd /data/nginx/nginx/sbin
./nginx
24.安装后验证
su - nginx
nginx -v
ps -ef|grep nginx
25.服务启停
- 启动
# 普通用户启动
su - nginx
start-nginx
# root用户启动
su - root
cd /data/nginx/nginx/sbin
./nginx
2.停止
su - mysql
stop-nginx
3.重新加载配置
su - nginx
cd /data/nginx/nginx/sbin
./nginx -s reload
------------当你发现自己的才华撑不起野心时,那就沉下心来学习吧!-------------
浙公网安备 33010602011771号