一、环境
1.要玩nginx需要安装gcc的环境。
yum install gcc-c++
2.第三方的开发包
PCRE
yum install -y pcre pcre-devel
zlib
yum install -y zlib zlib-devel
openssl
yum install -y openssl openssl-devel
二、安装步骤
1.把nginx的源码包上传到linux系统
2.解压缩
tar zxf nginx-1.8.0.tar.gz
3.进入nginx-1.8.0目录。
cd nginx-1.8.0
4.使用configure命令创建一makeFile文件。
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
mkdir /var/temp/nginx/client -p
5.make
make
6.make install
make install
7.进入sbin目录启动nginx
cd /usr/local/nginx/sbin
./nginx
8.查看启动状态
ps aux|grep nginx
9.访问nginx。nginx默认是80端口,注意:是否关闭防火墙
三、配置虚拟主机
如何区分网站:域名或者端口号
1.通过端口区分不同虚拟机
复制一个html文件夹,修改文件夹名
区分两个html下index.html
在nginx.conf文件中添加一个server节点
刷新配置文件
./nginx -s reload
2.通过域名区分不同虚拟机
修改window的hosts文件:(C:\Windows\System32\drivers\etc)
可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。
新增两个server节点
测试结果:
四、反向代理
增加两个server节点
1.www.aa.com和www.bb.com都绑定了192.168.80.100,并且都是80端口。
2.匹配server_name。
3.找proxy_pass对应的地址。
192.168.80.100 www.aa.com
192.168.80.100 www.bb.com
upstream tomcat1 {
server 192.168.1.30:8080;
}
server {
listen 80;
server_name www.aa.com;
location / {
proxy_pass http://tomcat1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream tomcat2 {
server 192.168.1.30:8081;
}
server {
listen 80;
server_name www.bb.com;
location / {
proxy_pass http://tomcat2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
我在宿主机上启了两个项目,分别对应8080和8081
五、负载均衡
nginx的负载均衡算法(默认是轮询)https://www.cnblogs.com/wyglog/p/12458916.html
upstream tomcat2 {
server 192.168.1.30:8081;
server 192.168.1.30:8083;
}
server {
listen 80;
server_name www.bb.com;
location / {
proxy_pass http://tomcat2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
upstream tomcat2 {
server 192.168.1.30:8081;
server 192.168.1.30:8083 weight=2;
}