国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Nginx反向代理后端多個Tomcat、Nginx+PHP服務器(Nginx的代理和負載功能)
需求分析:
現(xiàn)有3個二級域名,一個IP地址,要實現(xiàn)將這3個域名通過1個IP地址對外提供web服務,可使用IP+端口的方式對域名進行解析,且互不影響。如:
Domain1:www.huangming.org     IPADDR:192.168.1.33:80
Domain2:web1.huangming.org    IPADDR:192.168.1.33:8080
Domain3:web2.huangming.org    IPADDR:192.168.1.33:8080
其中Domain1作為Nginx反向代理的2臺后端Read Server(Nginx+PHP),并實現(xiàn)負載均衡的功能。Domain2、3為通過Nginx反向代理的2臺后端Tomcat Server。
實驗拓撲:
環(huán)境介紹:
HostnameIPADDRServer
host1192.168.1.231Nginx PHP Tomcat MySQL
host2192.168.1.232Nginx PHP Tomcat MySQL
hxm(huangming.org)192.168.1.33Nginx-Proxy
Step1:在host1、2上搭建配置Tomcat虛擬主機,下面是相關配置
[root@host1 ~]# vim /usr/local/tomcat/conf/server.xml
1、打開server.xml配置文件,修改defaultHost="web1.huangming.org",并設置Hostname
2、指定webapp的目錄存放路徑appBase="/data/webapp1"
3、設置日志存放路徑directory="/data/webapp1/logs"
[root@host1 ~]# vim /usr/local/tomcat/conf/server.xml    ;在文件最后增加一個Host
1
2
3
4
5
6
7
8
9
<Engine name="Catalina" defaultHost="web1.huangming.org">
</Host>
<Host name="web1.huangming.org" appBase="/data/webapp1" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="/data/webapp1" reloadabled="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/webapp1/logs"
prefix="web1_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
4、創(chuàng)建webapp的目錄文件
[root@host1 ~]# mkdir /data/webapp1
[root@host1 ~]# mkdir /data/webapp1/{lib,classes,WEB-INF,META-INF,logs} -p
1
2
[root@host1 ~]# ls /data/webapp1/
classes  index.jsp  lib  logs  META-INF  WEB-INF
5、創(chuàng)建一個index.jsp頁面
1
2
3
4
5
6
7
8
9
10
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>web1.huangming.org test page.</title>
</head>
<body>
<% out.println("Hello,This is web1."); %>
</body>
</html>
6、在host2創(chuàng)建配置Tomcat虛擬主機,與host1相同
1
2
3
4
5
6
7
8
9
<Engine name="Catalina" defaultHost="web2.huangming.org">
</Host>
<Host name="web2.huangming.org" appBase="/data/webapp2" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="/data/webapp2" reloadabled="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/webapp2/logs"
prefix="web2_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
Step2:Host1和Host2的Nginx虛擬主機搭建和配置
1、Host1配置一個WEB虛擬主機,添加一個server.conf配置文件
[root@host1 ~]# vim /etc/nginx/vhosts/www.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen      80;
server_name 192.168.1.231;
index index.html index.htm index.php index.jsp;
server_tokens       off;
root        /data/www/html;
access_log  /var/log/nginx/www_access.log main;
location / {
root    /data/www/html;
index   index.html inex.htm index.php;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/lib/php/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www/html$fastcgi_script_name;
}
2、Host2配置一個WEB虛擬主機,添加一個server.conf配置文件
[root@host2 ~]# vim /etc/nginx/vhosts/www.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen      80;
server_name 192.168.1.232;
index index.html index.htm index.php index.jsp;
server_tokens       off;
root        /data/www/html;
access_log  /var/log/nginx/www_access.log main;
location / {
root    /data/www/html;
index   index.html inex.htm index.php;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/lib/php/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www/html$fastcgi_script_name;
}
3、php-fpm的配置
# vim /usr/local/php/etc/php-fpm.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /var/lib/php/php-fcgi.sock
user = php-fpm
group = php-fpm
listen.owner = nginx
listen.group = nginx
pm = dynamic
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
slowlog = /var/log/php/www_slow.log
request_slowlog_timeout = 1
php_admin_value[open_basedir]=/data/www/:/tmp/
Step3:Nginx反向代理服務器配置
在nginx配置文件的http模塊中添加server配置
http {
include vhosts/*.conf;
......
upstream bbs {  ;負載均衡配置
ip_hash;
server 192.168.1.231:80 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.1.232:80 weight=1 max_fails=3 fail_timeout=30s;
}
server {    ;此server代理Domain1:www.haungming.org
listen      80;
server_name www.huangming.org huangming.org 192.168.1.33;
index index.html index.htm index.php index.jsp;
server_tokens       off;
access_log  /var/log/nginx/www.access.log main;
location / {
proxy_pass http://bbs;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
proxy_buffering on;
proxy_redirect off;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_max_temp_file_size 1024m;
}
}
server {    ;此server代理Domian2:web1.huangming.org
listen      80;
server_name web1.huangming.org;
index index.html index.htm index.jsp;
server_tokens       off;
access_log  /var/log/nginx/web1.access.log main;
location / {
proxy_pass http://192.168.1.231:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
}
}
server {    ;此server代理Domain3:web2.huangming.org
listen      80;
server_name web2.huangming.org;
index index.html index.htm index.jsp;
server_tokens       off;
access_log  /var/log/nginx/web2.access.log main;
location / {
proxy_pass http://192.168.1.232:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
}
}
}
Step4:后端Nginx read server的日志記錄
如果在web前端使用了代理,Nginx會使用默認的日志記錄格式,記錄不到客戶的真實IP地址,故將兩臺host1、2的Nginx日志格式記錄如下:
http {
......
log_format  main  '$HTTP_X_REAL_IP - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$request_time"'
'"$http_user_agent" $HTTP_X_Forwarded_For';
測試效果
1
[root@node1 ~]# curl http://192.168.1.33 -I
Step5:Nginx代理服務的日志記錄
http {
......
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$gzip_ratio" "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for" [$upstream_addr] '
'"$upstream_response_time" - "$request_time"';
}
測試效果:
其中"$upstream_addr"為響應客戶請求的后端read server的IP address
Step6:Nginx的靜態(tài)緩存、防盜鏈的相關配置,在host1、2上
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
......
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {
expires        7d;
root   /data/www/html;
access_log     off;
valid_referers none blocked *.huangming.org huangming.org;
if ($invalid_referer)
{
return 403;
}
}
location ~ .*\.(js|css)?$ {
expires         24h;
access_log      off;
}
location ~ (static|cache) {
access_log      off;
}
}
Step7:測試Nginx反向代理和負載均衡
首先需要將域名做好解析,可以在本機hosts文件設置,或者在萬網(wǎng)解析
1、測試Domian1
查看日志記錄是否負載成功
2、測試訪問Domain2、3(Tomcat服務器)
查看Nginx代理Tomcat的訪問日志
1
2
3
[root@hxm ~]# tail -2 /var/log/nginx/web1.access.log
101.233.172.217 - - [07/Apr/2016:11:51:02 +0800] "GET / HTTP/1.1" 200 145 "-" "-""Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" [192.168.1.231:8080] "0.007" - "0.007"
101.233.172.217 - - [07/Apr/2016:11:51:44 +0800] "GET / HTTP/1.1" 200 145 "-" "-""curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" [192.168.1.231:8080] "0.005" - "0.005"
1
2
3
[root@hxm ~]# tail -2 /var/log/nginx/web2.access.log
101.233.172.217 - - [07/Apr/2016:11:50:30 +0800] "GET /favicon.ico HTTP/1.1" 404 1016 "-" "-""Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" "-" [192.168.1.232:8080] "0.018" - "0.018"
101.233.172.217 - - [07/Apr/2016:11:51:56 +0800] "GET / HTTP/1.1" 200 145 "-" "-""curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" [192.168.1.232:8080] "0.011" - "0.011"
Step8:關于Tomcat的默認管理主頁
將name=localhost,修改為本機地址192.168.1.231,這樣可以在本地通過訪問這個IP進入Tomcat的默認主頁和配置管理頁面(這樣與web1.huangming.org不產(chǎn)生沖突)
[root@host1 ~]# vim /usr/local/tomcat/conf/server.xml
Step9:Domain1:www.huangming.org站點目錄的同步
這里在Host1和Host2之間使用NFS文件服務器,Host2掛載Host1的站點目錄文件
[root@host2 conf]# df -Th
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/sda3            ext4    13G  5.8G  6.1G  49% /
tmpfs                tmpfs  491M     0  491M   0% /dev/shm
/dev/sda1            ext4   190M   27M  154M  15% /boot
192.168.1.231:/data/www/html
nfs     13G  3.4G  8.6G  29% /data/www/html
結語:Nginx服務器的緩存配置
在web的前端,通常會加一層緩存服務器,作為緩存后端Read Server的網(wǎng)頁內容,以加快訪問速度,因此可以使用前端的Nginx代理服務器配置文件中添加緩存配置同時作為緩存服務使用
本文出自 “7414593” 博客,請務必保留此出處http://7424593.blog.51cto.com/7414593/1762432
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
nginx tomcat負載均衡之文件上傳訪問策略
windows 下 Nginx + tomcat 負載均衡配置
Windows環(huán)境下,Nginx+tomcat+redis實現(xiàn)web項目集群
『互聯(lián)網(wǎng)架構』軟件架構
nginx和Tomcat集成后發(fā)生的重定向問題分析和解決
Nginx SSL+Tomcat https
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服