第160次(Nginx)
学习主题:Nginx
学习目标:
1 掌握Nginx在Linux下的各种配置
2 掌握使用Nginx实现负载均衡,反向代理
对应作业
- Linux绑定多IP
- 如何在Linux中绑定多IP?(写出步骤)
- 一台 Linux 服务器绑定两个 ip:192.168.70.144、192.168.70.188 访问不同的 ip 请求不同的 html 目录,
即:
访问 http://192.168.70.144 将访问“html144”目录下的 html 网页
访问 http://192.168.70.188 将访问“html188”目录下的 html 网页
- Linux 操作系统允许绑定多 IP。使用 IP 别名的方式,在一块物理网卡上可以绑定多个 lP 地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于 IP 的虚拟主机。但是 在绑定多 IP 时需要将动态的 IP 分配方式修改为静态的指定 IP
- cd /etc/sysconfig/network-scripts
IPADDR=192.168.10.144
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=114.114.114.114
- 将/etc/sysconfig/network-scripts/ifcfg-eth0 文件复制一份,命名为 ifcfg-eth0:1
修改其中内容: DEVICE=eth0:1
IPADDR=192.168.70.188
其他项不用修改 重启系统
- Nginx基于IP的虚拟主机配置
- 如何配置Nginx的基于IP访问的虚拟主机?(写出步骤)
user root;
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;
192.168.193.129;
location / {
root html129;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
192.168.193.130;
location / {
html130;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- Nginx基于端口的虚拟主机配置
- 如何配置Nginx的基于端口访问的虚拟主机?(写出步骤)
user root;
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 192.168.193.129;
location / {
root html129;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name 192.168.193.130;
location / {
root html130;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#这里是配置端口的
server {
listen 4444;
server_name 192.168.193.129;
location / {
root html4444;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 5555;
server_name 192.168.193.129;
location / {
root html5555;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
重启Nginx:
./nginx -s quit 关闭
./nginx 启动
- Nginx基于域名的虚拟主机配置
- 如何配置Nginx的基于域名访问的虚拟主机?(写出步骤)
文件路径:C:WindowsSystem32driversetc (获取管理员权限否则不能修改)
配置Nginx(这里主要是server的配置)
#配置百度
server {
listen 80;
server_name www.baidu.com;
location / {
root htmlbaidu;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#配置淘宝
server {
listen 80;
server_name www.taobao.com;
location / {
root htmltaobao;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- Nginx反向代理-配置反向代理
- 如何通过Nginx配置服务的反向代理?(写出步骤)_
2.1需求
安装两个 tomcat 服务,通过 nginx 反向代理。 本案例中使用两台虚拟机演示。 tomcat 安装到 192.168.70.143 环境中。端口为 8080 与 9090 Nginx 安装在 192.168.70.144 环境中
2.2安装环境
2.3安装 tomcat
2.4配置 tomcat
2.4.1修改端口
2.4.2修改首页内容
2.5配置 Nginx 实现服务的反向代理
nginx.conf
user root; 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;
sendfile on;
keepalive_timeout 65;
upstream tomcat_server1{ server 192.168.70.143:8080;
}
upstream tomcat_server2{ server 192.168.70.143:9090;
}
server {
listen 80; #为虚拟机指定 IP 或者是域名
server_name test.bjsxt.com; #主要配置路由访问信息
location / {
#用于指定访问根目录时,访问虚拟主机的 web 目录
proxy_pass http://tomcat_server1;
#在不指定访问具体资源时,默认的展示资源的列表 index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一个 Server 就是一个虚拟主机
server {
listen 80; #为虚拟机指定 IP 或者是域名
server_name test.itbaizhan.cn; #主要配置路由访问信息
location / {
#用于指定访问根目录时,访问虚拟主机的 web 目录
proxy_pass http://tomcat_server2;
#在不指定访问具体资源时,默认的展示资源的列表
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
} }
- Nginx反向代理-配置负载均衡
- 什么是负载均衡?
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上 进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务 服务器等,从而共同完成工作任务。
- Nginx中所支持的负载均衡策略有哪些?
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后 端服务器 down 掉,能自动剔除。
指定权重
指定轮询几率,weight 和访问比率成正比,用于后端服务器 性能不均的情况。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
- Nginx中默认的负载均衡策略是什么?
轮询(默认)
- 如何在Nginx中指定权重?
指定轮询几率,weight 和访问比率成正比,用于后端服务器 性能不均的情况。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
- Nginx反向代理-HTTP协议代理
- 如何通过Nginx解决上传图片后无法回显的问题?
明天再改.