Nginx详解
nginx是一个web服务器软件,有以下优点:高并发,静态资源5w/s,可以实现负载均衡,可以实现反向代理,内存和cup占用少,对后台服务有检查功能,
代码简洁容易上手,nginx是内核和模块组成,通过查找配置文件将客户请求映射到一个location block(location是Nginx配置中的一个命令,用于URL匹配)
而在这个location中配置的每一个指令将会启动不同的模块来完成相应的任务
安装
一键安装依赖
1 | yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel |
下载nginx安装包:1
2
3
4
5
6wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -xzvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure
make
make install
查看nginx版本:1
/usr/local/nginx/sbin/nginx -V
查看配置文件是否正常1
/usr/local/nginx/sbin/nginx -t
启动命令,默认端口为801
/usr/local/nginx/sbin/nginx
关闭命令1
pkill nginx
负载均衡
添加配置文件
1 | cd /usr/local/nginx/conf |
请输入以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19user nobody;
worker_processes 4;//表示4个进程
events{
worker_connection 1024;//表示1024并发量
}
http{
upstream yangcan{ //服务器列表,既可以是内网,也可以是外网,是轮询的方式
server 61.135.169.121; //百度
server 42.156.140.7; //万网
server 113.80.62.1; //京东
server 172.19.20.7:8318 //空中网内部网
}
server {
listen 80;//监听80号端口
location / {
proxy_pass http://yangcan;
}
}
}
启动命令1
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fzjh.conf
nginx模块介绍
ip_hash的作用是保证同一个用户访问同一个服务器,不进行负载均衡
配置如下:
1 | user nobody; |
权重配置如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19user nobody;
worker_processes 4;//表示4个进程
events{
worker_connection 1024;//表示1024并发量
}
http{
upstream yangcan{ //服务器列表,既可以是内网,也可以是外网,是轮询的方式
server 61.135.169.121 weight=2; //百度,默认的权重都是1,weight=2表示这个服务器被访问的次数多一些
server 42.156.140.7; //万网
server 113.80.62.1; //京东
server 172.19.20.7:8318 //空中网内部网
}
server {
listen 80;//监听80号端口
location / {
proxy_pass http://yangcan;
}
}
}
nginx基本配置
在nginx安装目录中有一个nginx的配置文件 /usr/local/nginx/conf下有一个nginx.conf,内容如下:
1 | #设置用户 |
虚拟主机,基于IP配置
配置IP地址,修改网卡的iP地址,命令为:
1 | ifconfig eth0 192.168.1.9 netmask 255.255.255.0 |
增加虚拟IP地址:1
2ifconfig eth0:1 192.168.1.7 broadcast 192.168.1.255 netmask 255.255.255.0
ifconfig eth0:1 192.168.1.17 broadcast 192.168.1.255 netmask 255.255.255.0
在/usr/local/nginx/conf里面新建一个配置文件用户虚拟主机,文件名为xnzj.conf,内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25user nobody;
worker_processes 4;
events{
worker_connection 1024;
}
http{
server{
listen 192.168.1.7:80;
server_name 192.168.1.7;
access_log logs/server1.access_log combined;
location /{
index index.html index.htm;
root html/server1; //网页内容存放地,必须要在/usr/local/nginx/html下先建立server1目录
}
}
server{
listen 192.168.1.17:80;
server_name 192.168.1.17;
access_log logs/server2.access_log combined;
location /{
index index.html index.htm;
root html/server1;//网页内容存放地,必须要在/usr/local/nginx/html下先建立server1目录
}
}
}
启动nginx是加载配置文件,命令如下:1
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/xnzj.conf
虚拟主机,基于域名配置
基于域名配置,www.abc.com和www.bbb.com对应的IP地址是一样的,两个域名是nginx服务器IP对应的域名
1 | server{ |