worker_processes 1;
events {
worker_connections 65536;
}
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
limit_req zone=one burst=5;
server_name www.eternalcenter.com eternalcenter.com;
rewrite ^/(.*)$ https://eternalcenter.com/$1 permanent;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 443 ssl;
server_name www.eternalcenter.com eternalcenter.com;
if ($request_method !~ ^(GET|POST)$){
return 444;
}
ssl_certificate /root/ssl/eternalcenter.com.crt;
ssl_certificate_key /root/ssl/eternalcenter.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
location / {
root html;
index index.php index.html index.htm;
}
location ~ ^/\.user\.ini {
deny all;
}
location ~* \.(jpd|jpeg|gif|png|css|js|ico|xml)$ {
expires 30d;
}
error_page 404 /404.html;
}
gzip on;
gzip_min_length 1000;
gzip_comp_level 4;
gzip_types text/plain test/css application/json application/x-javascript text/xml application/xml
application/xml+rss text/javascripts;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
open_file_cache max=2000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
}
[步骤] Nginx 的升级
软件准备:
在 Nginx 官网上下载搭建集群所需软件 Nginx:
http://nginx.org/en/download.html
正文:
步骤一:确认升级目标
1) 在不停掉老进程的情况下,启动新进程
2) 老进程负责处理仍然没有处理完的请求,但不再接受处理请求
3) 新进程接受新请求
4) 老进程处理完所有请求,关闭所有连接后,停止
(注意:建议升级的版本不要太大,否则服务可能会无法启动)
步骤二:安装一个旧版本的 Nginx
# yum -y install pcre-devel zlib-devel
# useradd -M -s /sbin/nologin nginx
# tar -zxvf nginx-1.6.0.tar.gz -C /usr/src/
# cd /usr/src/nginx-1.6.0/
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
# /usr/local/nginx/sbin/nginx
(
补充:
1) 这里以编译安装 nginx-1.6 为例
2) 如果已经安装了旧版本的 Nginx 这一步可以忽略
)
步骤三:安装一个较新版本的 Nginx
# tar -zxvf nginx-1.8.1.tar.gz -C /usr/src/
# cd /usr/src/nginx-1.8.1/
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make
(补充:这里以编译 nginx-1.8 为例)
(注意:这里只编译不安装)
步骤四:升级 Nginx
4.1 显示升级之前的版本
# /usr/local/nginx/sbin/nginx -v
# nginx version: nginx/1.6.0
4.2 备份旧版本的 Nginx 执行程序
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4.3 替换旧的 Nginx 执行程序
# cp /usr/src/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/
4.4 使 Nginx 的旧版本停止进程
# kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
4.5 显示 Nginx 日志目录会生成一个 nginx.pid.oldbin 文件,存放旧版本 nginx 的 pid 号
# ls /usr/local/nginx/logs/
access.log error.log nginx.pid nginx.pid.oldbin
4.6 显示 Nginx 升级后的版本信息
# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.8.1
4.7 运行 Nginx ,之后显示它的运行状态
/usr/local/nginx/sbin/nginx
# netstat -aupt | grep nginx
getnameinfo failed
tcp 0 0 *:http *:* LISTEN 6963/nginx
[命令] Nginx 的使用 (管理命令)
注意:
在使用 Nginx 命令之前要先安装 Nginx
正文:
内容一:启动 Nginx 服务
# /usr/local/nginx/sbin/nginx
内容二:停止 Nginx 服务
# /usr/local/nginx/sbin/nginx -s stop
内容三:重启 Nginx 服务
# /usr/local/nginx/sbin/ngixn -s reload
内容四:显示被安装 Nginx 的版本和模块
# /usr/local/nginx/sbin/nginx -V
内容五:创建 Nginx 快捷方式
# ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
[生产] Shell 将网站的全量数据备份到本电脑并运行 (Mac 版)
介绍
基本信息
作者:朱明宇
名称:将网站的全量数据备份到本电脑并运行(Mac 版)
作用:将一台 Web 服务器上的网页文件和数据库数据全量备份到本地 Mac 主机,再通过本地的 Mac 主机 Web 服务将它跑起来
使用方法
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本
4. 可以设置定时任务让他定期自动执行,也就是(sudo crontab -e)
脚本分割线里的变量
1. user=root #登录 Web 服务器的用户,请确保这个用户有创建缓存备份目录的权限
2. ip=8.8.8.8 # Web 服务器的 IP
3. dbadmin=root #Web 服务器备份 MariaDB 数据库的数据库用户
4. dbpassword=”‘123456′” #Web 服务器备份MariaDB 数据库的用户的密码
5. path=/backup #本地主机放置备份的目录
6. filename=backup #备份文件的中间名
7. cache=/cache #Web服务器用来缓存备份的目录,请确保这个目录没有其他用途,且能被登录 Web 服务器的用户创建
8. html=/web-file #本地主机存放网页文件的目录,请确保当前的 Mac 系统用户对他有写和执行权限否则请更改网页文件的目录
注意
1. 此脚本执行前必须要先保证执行脚本的主机能无秘钥远程这台 Web 服务器
2. 请保证本机的 MariaDB 并没有设置密码
3. 此脚本执行前必须要先保证执行脚本的主机 MAMP 平台已经搭建好了
4. 本地 MairaDB 的密码为空
5. 此脚本备份的网页文件是 WordPress
脚本
#!/bin/bash
####################### Separator ########################
user=root
ip=8.8.8.8
dbadmin=root
dbpassword="'123456'"
path=/backup
filename=backup
cache=/cache
html=/web-file
####################### Separator ########################
date=$(date +%Y-%m-%d-%H)
ping -c3 -i0.8 $ip > /dev/null
if [ $? -eq 0 ];then
ssh $user@$ip "mkdir $cache &> /dev/null"
ssh $user@$ip "mysqldump -u$dbadmin -p"$dbpassword" -A > $cache/$filename-$date.sql"
ssh $user@$ip "cd /usr/local/nginx/html/
tar -cvf $cache/$filename-$date.tar.gz .[!.]* * &> /dev/null"
mkdir -p $path/$date &> /dev/null
scp $user@$ip:$cache/$filename-$date.sql $path/$date
scp $user@$ip:$cache/$filename-$date.tar.gz $path/$date
ssh $user@$ip "rm -rf $cache\*"
fi
rm -rf $html/*
tar -xvf $path/$date/$filename-$date.tar.gz -C $html/
mysql -u$dbadmin < $path/$date/$filename-$date.sql
rm -rf $html/index.html
sed -i "" s/"'DB_USER', '.*'"/"'DB_USER', 'root'"/ $html/wp-config.php
sed -i "" s/"'DB_PASSWORD', '.*'"/"'DB_PASSWORD', ''"/ $html/wp-config.php
sed -i "" s/"'DB_HOST', '.*'"/"'DB_HOST', '127.0.0.1:3306'"/ $html/wp-config.php
mysqladmin -uroot password ''