nginx 使用 YUM 方式安裝,版本是 1.18
systemctl start nginx && systemctl enable nginx
首先我們設定 h2 ,讓他作為 web 伺服器,提供一個頁面內容的展示
檢視並確認 Nginx 的頁面根目錄
[root@h2 ~]# grep -C 3 'location /' /etc/nginx/conf.d/default.conf
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; # 頁面目錄
index index.html index.htm; # 頁面檔名稱
}
修改 /usr/share/nginx/html/index.html
檔案的內容如下:
真實 web 伺服器 h2
首先在 h2 上執行如下命令存取網站
[root@h2 ~]# curl h2
真實 web 伺服器 h2
之後在 h1 上存取網站
[root@h1 ~]# curl h2
真實 web 伺服器 h2
[root@h1 ~]#
systemctl start nginx && systemctl enable nginx
把 /etc/nginx/conf.d/default.conf
檔案的內容修改成為如下內容
[root@h1 ~]# egrep -v '^[ \t]*#|^$' /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
# 這裡就是設定代理的地方,使用關鍵字 proxy_pass
# 後面跟的是真實伺服器IP或者主機名加埠號,這裡是 h2
proxy_pass http://h2:80;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
[root@h1 ~]# nginx -s reload
在使用者端機器 h3 上存取代理伺服器 h1
[root@h3 ~]# curl h1
真實 web 伺服器 h2
[root@h3 ~]#
在物理宿主機上操作
新增 2臺主機到 docer-compose.yml 檔案中
h4:
image: centos7-sshd
container_name: h4
hostname: h4.sharkyun.com
privileged: true
command: /usr/sbin/init
networks:
xiuyun_net:
ipv4_address: 192.16.2.40
h5:
image: centos7-sshd
container_name: h5
hostname: h5.sharkyun.com
privileged: true
command: /usr/sbin/init
networks:
xiuyun_net:
ipv4_address: 192.16.2.50
啟動他們
[xiguatian@development project]$ docker-compose up -d h4 h5
建立 /etc/yum.repos.d/nginx.repo
檔案並寫入如下內容:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
接著執行入下命令安裝 Nginx
yum -y install nginx
最後執行如下命令啟動 Nginx 伺服器,並設定為開機自啟
systemctl start nginx && systemctl enable nginx
修改 /usr/share/nginx/html/index.html
檔案的內容如下:
[root@h4 ~]# echo "真實 web 伺服器 h4" > /usr/share/nginx/html/index.html
修改 /usr/share/nginx/html/index.html
檔案的內容如下:
[root@h5 ~]# echo "真實 web 伺服器 h5" > /usr/share/nginx/html/index.html
首先在 h1 上執行如下命令存取 h4 和 h5 的網站
[root@h1 ~]# curl h4
真實 web 伺服器 h4
[root@h1 ~]# curl h5
真實 web 伺服器 h5
[root@h1 ~]#
在代理伺服器 h1 上操作
修改 h1 的 Nginx 組態檔 /etc/nginx/conf.d/default.conf
upstream testapp {
server h2:80;
server h4:80;
server h5:80;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://testapp;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
重新載入 Nginx 組態檔
[root@h1 ~]# nginx -s reload
在使用者端 h3 上操作
在 h3 上連續存取 h1 4 次
[root@h3 ~]# curl h1
真實 web 伺服器 h2
[root@h3 ~]# curl h1
真實 web 伺服器 h4
[root@h3 ~]# curl h1
真實 web 伺服器 h5
[root@h3 ~]# curl h1
真實 web 伺服器 h2