Nginx(三)
- nginx平滑升级
- 平滑升级过程
# 进入nginx的sbin目录查看nginx的版本
./nginx -v
# 下载解压要升级到的版本,然后查看安装环境,再make编译
./configure
make
# 对老版本的nginx的可执行文件进行备份(nginx.old)
cd /usr/local/nginx/sbin
cp nginx nginx.old
# 进入新版本的nginx目录,然后将nginx可执行文件复制过去
cp -rfp objs/nginx /usr/local/nginx/sbin/
# 删除新版本的压缩包和解压包
- nginx配置文件总览
- 进入配置文件目录
# 进入目录
cd /usr/local/nginx/conf
# 查看配置文件
vi nginx.conf - 配置文件详解
########### 每个指令必须有分号结束。#################
#配置用户或者组,默认为nobody nobody
#user administrator administrators;
#允许生成的进程数,默认为1(CPU核实)
#worker_processes 2;
#指定nginx进程运行文件存放地址
#pid /nginx/pid/nginx.pid;
#制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别依次为:debug|info|notice|warn|error|crit|alert|emerg
error_log log/error.log debug;
events {
#设置网路连接序列化,防止惊群现象发生,默认为on
accept_mutex on;
#设置一个进程是否同时接受多个网络连接,默认为off
multi_accept on;
#事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
#use epoll;
#最大连接数
worker_connections 1024;
}
http {
#文件扩展名与文件类型映射表
include mime.types;
#默认文件类型,默认为text/plain
default_type application/octet-stream;
#取消服务日志
#access_log off;
#自定义格式
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
#combined为日志格式的默认值
access_log log/access.log myFormat;
#允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
#每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
sendfile_max_chunk 100k;
#连接超时时间,默认为75s,可以在http,server,location块。
keepalive_timeout 65;
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
#错误页
error_page 404 https://www.baidu.com;
server {
keepalive_requests 120; #单连接请求上限次数。
listen 4545; #监听端口
server_name 127.0.0.1; #监听地址
#请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
location ~*^.+$ {
#root path; #根目录
#index vv.txt; #设置默认页
#请求转向mysvr 定义的服务器列表
proxy_pass http://mysvr;
deny 127.0.0.1; #拒绝的ip
allow 172.18.5.54; #允许的ip
}
}
} - 通常情况下,为了使每个服务器可以供更多用户使用,可以将一个服务器分为很多虚拟的子服务器,每个子服务器都是互相独立的。这些服务器是根据虚拟化技术分出来的,这样,一台服务器就可以虚拟成很多台子服务器。我们把子服务器叫做虚拟主机。我们搭建好Nginx服务器之后,此时只有一台Nginx服务器,这时如果我们对这台服务器进行虚拟主机配置,就可以将一台Nginx服务器分割为多台独立的子服务器。Nginx中配置虚拟主机的步骤主要有两个,第一步是配置IP地址,第二步是绑定IP地址与虚拟主机。
- 配置IP地址
# 查看ip地址信息
ifconfig
# 手动配置ip地址(不要修改ip地址,不然连不上,直接使用分配的IP地址)
ifconfig ens33(eth0)192.168.1.9(1-59) netmask 255.255.255.0
# 虚拟主机ip地址配置(broadcast、netmask要和主IP地址相同)
ifconfig ens33:1 192.168.1.7 broadcast 192.168.1.255 netmask 255.255.255.0
# 查看是否配置好
ifconfig
# 再次配置一个虚拟主机ip地址(修改两处)
ifconfig ens33:2 192.168.1.17 broadcast 192.168.1.255 netmask 255.255.255.0 - 配置虚拟主机
# 在nginx存放配置文件的目录下新建一个虚拟主机文件(/usr/local/nginx/conf)
touch xunizhuji.conf
# 在xunizhuji.conf写入配置
user nobody;
worker_processes 1;
events{
worker_connections 1024;
}
http{
server{
listen 192.168.1.7:80;
server_name 192.168.1.7;
access_log logs/server1.access.log combined;
location /
{
# /usr/local/nginx/html/server1目录下
index index.html index.htm;
# root是指/usr/local/nginx目录;server1目录存放源文件
root html/server1;
}
}
server{
listen 192.168.1.17:80;
server_name 192.168.1.17;
access_log logs/server1.access.log combined;
location /
{
index index.html index.htm;
root html/server2;
}
}
}
# 在目录/usr/local/nginx/html下新建
mkdir server1
cd server1
# 创建首页
touch index.html
mkdir server2
cd server2
touch index.html