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 效果展示