nginx配置虚拟主机,实现反向代理和负载均衡
一、前言
nginx的安装、启动使用教程请参考前一篇文章
nginx基础
二、nginx配置虚拟主机
就是在一台服务器启动多个网站。
如何区分不同的网站:
- 域名不同
- 端口不同
2.1 通过端口区分不同虚拟机
2.1.1 找到nginx安装的配置文件
2.1.2 修改配置文件
这里建议采用xftp软件打开配置文件,方便操作
打开之后如图所示,文档中#开头为注释,可以去掉
```java
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
}
在配置文件中添加虚拟主机
2.1.3 复制html文件
为了便于呈现效果,复制html文件,并修改其内容
命令:cp html html81
2.1.4 重新加载配置文件
2.1.5 效果展示
2.2 通过域名区分虚拟主机
域名就是网站
DNS服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系
一个域名对应一个ip地址,一个ip地址可以被多个域名绑定
2.2.1 修改本机配置文件hosts
为了在本机上起到通过域名访问的效果,需要配置一下hosts文件
hosts文件地址:C:\Windows\System32\drivers\etc
2.2.2 修改nginx的配置文件,添加新的服务
2.2.3 复制html文件,并修改内容
2.2.4 效果展示
三、反向代理
3.1 什么是反向代理
正向代理
反向代理
反向代理服务器决定哪台服务器提供服务
3.2 Nginx实现反向代理
3.2.1 配置域名
首先在本机的hosts文件中添加新的域名
3.2.2 配置Tomcat服务器
在虚拟机上配置两台Tomcat服务器,并修改其端口号一个为8081,一个为8082
并修改index.jsp以便于区分
3.2.3 查看两台Tomcat服务器是否启动成功
3.2.4 反向代理服务器的配置
upstream sina{
server 192.168.12.128:8082;
}
server {
listen 80;
server_name www.sina.com.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://sina;
index index.html index.htm;
}
}
upstream sohu{
server 192.168.12.128:8081;
}
server {
listen 80;
server_name www.sohu.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://sohu;
index index.html index.htm;
}
}
3.2.5 重新加载配置文件,查看效果
四、nginx负载均衡(tomcat集群)
如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡
4.1 再新建一台Tomcat服务器,并启动
端口号为:8083
4.2 修改nginx配置文件
4.3 效果展示