#1.安装依赖项目:PCRE
链接: https://pan.baidu.com/s/1JA-Tifch8ftM32znQO1csQ 提取码: svgw
./configure
make && make install
#2.安装依赖项目:libtool
链接: https://pan.baidu.com/s/18UohgCRggfhlwcAoVOlkvw 提取码: dnd6
./configure
make && make install
#3.安装nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -xvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure --with-stream
make && make install
#4.直接启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s stop (quit) #停止nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
#5.将nginx设置为服务并开机启动
cat > /usr/lib/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
定期清理日志
cat > /usr/local/nginx/clean_nginx_logs.sh <<"EOF"
#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%Y%m%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
mv $base_path/error.log $base_path/$log_path/error_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
EOF
chmod +x /usr/local/nginx/clean_nginx_logs.sh
加入crontab 定期执行日志清理
执行crontab -e,加入一行
0 0 * * * /bin/bash /usr/local/nginx/clean_nginx_logs.sh
默认配置文件
worker_processes auto;
worker_rlimit_nofile 100000;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
stream{
upstream mysql {
hash $remote_addr consistent;
server 192.168.6.117:3306 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.6.118:3306 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 23306;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass mysql;
}
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$time_iso8601, status: $status, request: $http_host $request, spent: $request_time, upstreamAaddr: $upstream_addr, clientIp: $remote_addr, agent: $http_user_agent';
access_log /var/log/nginx/access.log main;
sendfile on;
proxy_ignore_client_abort on;
#for upload
client_max_body_size 60M;
client_body_buffer_size 128k;
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
keepalive_timeout 65;
send_timeout 60;
fastcgi_buffers 8 128k;
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 640;
gzip on;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}