1
2
3
4
5
|
[root@tomcat
conf] #
vim server.xml <Host
name= "www.test.com" appBase= "/web" unpackWARs= "true" autoDeploy= "true" > <Context
path= "/" docBase= "webapp" reloadable= "true" /> < /Host > |
1
|
[root@tomcat
src] #
tar xf JavaCenter_Home_2.0_GBK.tar.bz2 |
1
2
|
[root@tomcat
src] #
cd JavaCenter_Home_2.0_GBK [root@tomcat
JavaCenter_Home_2.0_GBK] #
mv * /web/webapp/ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
[root@tomcat
~] #
service tomcat configtest Using
CATALINA_BASE: /usr/local/tomcat Using
CATALINA_HOME: /usr/local/tomcat Using
CATALINA_TMPDIR: /usr/local/tomcat/temp Using
JRE_HOME: /usr/java/jdk1 .6.0_21 Using
CLASSPATH: /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar Sep
23, 2013 5:31:18 PM org.apache.catalina.core.AprLifecycleListener init INFO:
The APR based Apache Tomcat Native library which allows
optimal performance in production
environments was not found on the java.library.path: /usr/java/jdk1 .6.0_21 /jre/lib/amd64/server : /usr/java/jdk1 .6.0_21 /jre/lib/amd64 : /usr/java/jdk1 .6.0_21 /jre/ .. /lib/amd64 : /usr/java/packages/lib/amd64 : /usr/lib64 : /lib64 : /lib : /usr/lib Sep
23, 2013 5:31:20 PM org.apache.coyote.AbstractProtocol init INFO:
Initializing ProtocolHandler [ "http-bio-80" ] Sep
23, 2013 5:31:20 PM org.apache.coyote.AbstractProtocol init INFO:
Initializing ProtocolHandler [ "ajp-bio-8009" ] Sep
23, 2013 5:31:20 PM org.apache.catalina.startup.Catalina load INFO:
Initialization processed in 2493
ms [root@tomcat
~] #
service tomcat start Using
CATALINA_BASE: /usr/local/tomcat Using
CATALINA_HOME: /usr/local/tomcat Using
CATALINA_TMPDIR: /usr/local/tomcat/temp Using
JRE_HOME: /usr/java/jdk1 .6.0_21 Using
CLASSPATH: /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar [root@tomcat
~] #
netstat -ntulp Active
Internet connections (only servers) Proto
Recv-Q Send-Q Local Address Foreign Address State PID /Program name tcp
0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1026 /sshd tcp
0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1256 /master tcp
0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1339 /sshd tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1165 /mysqld tcp
0 0 :::80 :::* LISTEN 1499 /java tcp
0 0 :::22 :::* LISTEN 1026 /sshd tcp
0 0 ::1:25 :::* LISTEN 1256 /master tcp
0 0 ::1:6010 :::* LISTEN 1339 /sshd tcp
0 0 :::8009 :::* LISTEN 1499 /java |
1
|
[root@tomcat
~] #
yum install -y mysql-server |
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@tomcat
~] #
service mysqld start Starting
mysqld: [ OK ] [root@tomcat
~] #
mysql Welcome
to the MySQL monitor. Commands end with ; or \g. Your
MySQL connection id is
2 Server
version: 5.1.69 Source distribution Copyright
(c) 2000, 2013, Oracle and /or its
affiliates. All rights reserved. Oracle
is a registered trademark of Oracle Corporation and /or its affiliates.
Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help.
Type '\c' to clear the
current input statement. mysql> |
1
2
3
4
5
6
7
|
[root@tomcat
~] #
cd /web/webapp/ [root@tomcat
webapp] #
ls admin
avatar.jsp data help.jsp js.jsp rss.jsp userapp.jsp admincp.jsp
config.properties do .jsp
image link.jsp source WEB-INF api
contact.jsp editor.jsp index.jsp magic.jsp space.jsp xmlrpc.jsp app.jsp cp .jsp
errors install META-INF
template attachment
crossdomain.xml favicon.ico invite.jsp network.jsp theme |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@tomcat
~] #
mysql Welcome
to the MySQL monitor. Commands end with ; or \g. Your
MySQL connection id is
13 Server
version: 5.1.69 Source distribution Copyright
(c) 2000, 2013, Oracle and /or its
affiliates. All rights reserved. Oracle
is a registered trademark of Oracle Corporation and /or its affiliates.
Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help.
Type '\c' to clear the
current input statement. mysql>
create database jcenter; Query
OK, 1 row affected (0.00 sec) mysql>
grant all privileges on jcenter.* to jcenter@ 'localhost' identified
by '123456' ; Query
OK, 0 rows affected (0.00 sec) mysql>
grant all privileges on jcenter.* to jcenter@ '127.0.0.1' identified
by '123456' ; Query
OK, 0 rows affected (0.00 sec) mysql>
flush privileges; Query
OK, 0 rows affected (0.00 sec) |
1
2
|
[root@tomcat
~] #
ntpdate 202.120.2.101 [root@nginx
~] #
ntpdate 202.120.2.101 |
1
2
|
[root@nginx
~] #
yum groupinstall -y "Development Tools" "Server Platform Deveopment" [root@nginx
~] #
yum install -y openssl-devel pcre-devel |
1
2
3
4
|
[root@nginx
~] #
groupadd -r -g 108 nginx [root@nginx
~] #
useradd -r -g 108 -u 108 nginx [root@nginx
~] #
id nginx uid=108(nginx)
gid=108(nginx) 組=108(nginx) |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root@nginx
src] #
tar xf nginx-1.4.2.tar.gz [root@nginx
src] #
cd nginx-1.4.2 [root@nginx
nginx-1.4.2] #
ls auto
CHANGES CHANGES.ru conf configure contrib html LICENSE man README
src [root@nginx
nginx-1.4.2] #
./configure \ >
--prefix= /usr \ >
--sbin-path= /usr/sbin/nginx \ >
--conf-path= /etc/nginx/nginx .conf
\ >
--error-log-path= /var/log/nginx/error .log
\ >
--http-log-path= /var/log/nginx/access .log
\ >
--pid-path= /var/run/nginx/nginx .pid
\ >
--lock-path= /var/lock/nginx .lock
\ >
--user=nginx \ >
--group=nginx \ >
--with-http_ssl_module \ >
--with-http_flv_module \ >
--with-http_stub_status_module \ >
--with-http_gzip_static_module \ >
--http-client-body-temp-path= /var/tmp/nginx/client/ \ >
--http-proxy-temp-path= /var/tmp/nginx/proxy/ \ >
--http-fastcgi-temp-path= /var/tmp/nginx/fcgi/ \ >
--http-uwsgi-temp-path= /var/tmp/nginx/uwsgi \ >
--http-scgi-temp-path= /var/tmp/nginx/scgi \ >
--with-pcre [root@nginx
nginx-1.4.2] #
make && make install |
-
Nginx可以使用Tmalloc(快速、多線程的malloc庫及優秀性能分析工具)來加速內存分配,使用此功能需要事先安裝gperftools,而後在編譯nginx添加--with-google_perftools_module選項即可。
-
如果想使用nginx的perl模塊,可以通過爲configure腳本添加--with-http_perl_module選項來實現,但目前此模塊仍處於實驗性使用階段,可能會在運行中出現意外,因此,其實現方式這裏不再介紹。如果想使用基於nginx的cgi功能,也可以基於FCGI來實現,具體實現方法請參照網上的文檔。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
[root@nginx
~] #
cat /etc/init.d/nginx #!/bin/sh # #
nginx - this script starts and stops the nginx daemon # #
chkconfig: - 85 15 #
description: Nginx is an HTTP(S) server, HTTP(S) reverse \ #
proxy and IMAP/POP3 proxy server #
processname: nginx #
config: /etc/nginx/nginx.conf #
config: /etc/sysconfig/nginx #
pidfile: /var/run/nginx.pid #
Source function library. . /etc/rc .d /init .d /functions #
Source networking configuration. . /etc/sysconfig/network #
Check that networking is up. [ "$NETWORKING" = "no" ]
&& exit 0 nginx= "/usr/sbin/nginx" prog=$( basename $nginx) NGINX_CONF_FILE= "/etc/nginx/nginx.conf" [
-f /etc/sysconfig/nginx ]
&& . /etc/sysconfig/nginx lockfile= /var/lock/subsys/nginx make_dirs()
{ #
make required directories user=`nginx
-V 2>&1 | grep "configure
arguments:" | sed 's/[^*]*--user=\([^
]*\).*/\1/g' -` options=`$nginx
-V 2>&1 | grep 'configure
arguments:' ` for opt in $options; do if [
` echo $opt
| grep '.*-temp-path' `
]; then value=` echo $opt
| cut -d "=" -f
2` if [
! -d "$value" ]; then #
echo "creating" $value mkdir -p
$value && chown -R
$user $value fi fi done } start()
{ [
-x $nginx ] || exit 5 [
-f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n
$ "Starting
$prog: " daemon
$nginx -c $NGINX_CONF_FILE retval=$? echo [
$retval - eq 0
] && touch $lockfile return $retval } stop()
{ echo -n
$ "Stopping
$prog: " killproc
$prog -QUIT retval=$? echo [
$retval - eq 0
] && rm -f
$lockfile return $retval } restart()
{ configtest
|| return $? stop sleep 1 start } reload()
{ configtest
|| return $? echo -n
$ "Reloading
$prog: " killproc
$nginx -HUP RETVAL=$? echo } force_reload()
{ restart } configtest()
{ $nginx
-t -c $NGINX_CONF_FILE } rh_status()
{ status
$prog } rh_status_q()
{ rh_status
> /dev/null 2>&1 } case "$1" in start) rh_status_q
&& exit 0 $1 ;; stop) rh_status_q
|| exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q
|| exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q
|| exit 0 ;; *) echo $ "Usage:
$0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac |
1
|
[root@nginx
~] #
chmod +x /etc/init.d/nginx |
1
2
|
[root@nginx
~] #
chkconfig --add nginx [root@nginx
~] #
chkconfig nginx on |
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@nginx
~] #
service nginx start 正在啓動
nginx: [確定] [root@nginx
~] #
netstat -ntulp Active
Internet connections (only servers) Proto
Recv-Q Send-Q Local Address Foreign Address State PID /Program name tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14006 /nginx tcp
0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1029 /sshd tcp
0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1105 /master tcp
0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1345 /sshd tcp
0 0 :::22 :::* LISTEN 1029 /sshd tcp
0 0 ::1:25 :::* LISTEN 1105 /master tcp
0 0 ::1:6010 :::* LISTEN 1345 /sshd |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
[root@nginx
~] #
cd /etc/nginx/ [root@nginx
nginx] #
cp nginx.conf nginx.conf.bak [root@nginx
nginx] #
vim nginx.conf #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; proxy_pass
http: //192 .168.18.201/; #註釋默認兩行,新增一行。 } #error_page
404 /404.html; #
redirect server error pages to the static page /50x.html # error_page
500 502 503 504 /50x .html; location
= /50x .html
{ root
html; } } } |
1
2
3
4
|
[root@nginx
~] #
service nginx reload nginx:
the configuration file /etc/nginx/nginx .conf
syntax is ok nginx:
configuration file /etc/nginx/nginx .conf test is
successful 重新載入
nginx: [確定] |
1
2
|
[root@tomcat
~] #
vim /usr/local/tomcat/conf/server.xml <Engine
name= "Catalina" defaultHost= "www.test.com" > |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[root@tomcat
~] #
service tomcat stop Using
CATALINA_BASE: /usr/local/tomcat Using
CATALINA_HOME: /usr/local/tomcat Using
CATALINA_TMPDIR: /usr/local/tomcat/temp Using
JRE_HOME: /usr/java/jdk1 .6.0_21 Using
CLASSPATH: /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar [root@tomcat
~] #
service tomcat start Using
CATALINA_BASE: /usr/local/tomcat Using
CATALINA_HOME: /usr/local/tomcat Using
CATALINA_TMPDIR: /usr/local/tomcat/temp Using
JRE_HOME: /usr/java/jdk1 .6.0_21 Using
CLASSPATH: /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar [root@tomcat
~] #
netstat -ntulp Active
Internet connections (only servers) Proto
Recv-Q Send-Q Local Address Foreign Address State PID /Program name tcp
0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1026 /sshd tcp
0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1256 /master tcp
0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1339 /sshd tcp
0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 2744 /sshd tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2382 /mysqld tcp
0 0 :::80 :::* LISTEN 3299 /java tcp
0 0 :::22 :::* LISTEN 1026 /sshd tcp
0 0 ::1:25 :::* LISTEN 1256 /master tcp
0 0 ::1:6010 :::* LISTEN 1339 /sshd tcp
0 0 ::1:6011 :::* LISTEN 2744 /sshd tcp
0 0 :::8009 :::* LISTEN 3299 /java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
[root@nginx
nginx] #
cat nginx.conf #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; proxy_cache_path /nginx/cache levels=1:2
keys_zone=first:10m inactive=24h max_size=1G; #新建緩存路徑與相關屬性 upstream
backend { #建立後端tomcat服務器 server
192.168.18.201 weight=1; } server
{ listen
80; server_name
localhost; #charset
koi8-r; #access_log
logs/host.access.log main; location
/ { #root
html; #index
index.html index.htm; #proxy_pass
http://192.168.18.201/; #註釋原來的代理設置 proxy_pass
http: //backend/ ; #啓動後端服務器 } location
~* "\.(jpg|jpeg|png|gif|html|css|js)$" { #緩存圖片與靜態內容 proxy_pass
http: //backend ; proxy_cache
first; proxy_cache_valid
200 24h; #200狀態緩存24小時 proxy_cache_valid
302 10m; #302狀態緩存10分鐘 add_header
X-Cache-Status $upstream_cache_status; #在http頭部增加一個字段顯示是否命令緩存 } #error_page
404 /404.html; #
redirect server error pages to the static page /50x.html # error_page
500 502 503 504 /50x .html; location
= /50x .html
{ root
html; } } } |
1
2
3
|
[root@nginx
~] #
mkdir -pv /nginx/cache mkdir :
已創建目錄 "/nginx" mkdir :
已創建目錄 "/nginx/cache" |
1
2
3
|
[root@nginx
~] #
nginx -t nginx:
the configuration file /etc/nginx/nginx .conf
syntax is ok nginx:
configuration file /etc/nginx/nginx .conf test is
successful |
1
2
3
4
|
[root@nginx
~] #
service nginx reload nginx:
the configuration file /etc/nginx/nginx .conf
syntax is ok nginx:
configuration file /etc/nginx/nginx .conf test is
successful 重新載入
nginx: [確定] |
1
2
3
|
[root@nginx
~] #
cd /nginx/cache/ [root@nginx
cache] #
ls 0
1 2 3 4 5 6 7 8 9 b c d e |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
[root@nginx
nginx] #
cat nginx.conf #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; proxy_cache_path /nginx/cache levels=1:2
keys_zone=first:10m inactive=24h max_size=1G; upstream
backend { server
192.168.18.201 weight=1; } server
{ listen
80; server_name
localhost; #charset
koi8-r; #access_log
logs/host.access.log main; index
index.jsp index.html; location
~* "\.(jsp|do)$" { #當請求的是jsp或do文件時直接到tomcat上去取 #root
html; #index
index.html index.htm; #proxy_pass
http://192.168.18.201/; #proxy_pass
http://backend/; proxy_pass
http: //backend ; } location
= / { root
html; rewrite
^/ http: //192 .168.18.201 /index .jsp
last; } location
~* "\.(jpg|jpeg|png|gif|html|css|js)$" { proxy_pass
http: //backend ; proxy_cache
first; proxy_cache_valid
200 24h; proxy_cache_valid
302 10m; add_header
X-Cache-Status $upstream_cache_status; } #error_page
404 /404.html; #
redirect server error pages to the static page /50x.html # error_page
500 502 503 504 /50x .html; location
= /50x .html
{ root
html; } } } |
1
2
3
|
[root@nginx
~] #
nginx -t nginx:
the configuration file /etc/nginx/nginx .conf
syntax is ok nginx:
configuration file /etc/nginx/nginx .conf test is
successful |
1
2
3
4
|
[root@nginx
~] #
service nginx reload nginx:
the configuration file /etc/nginx/nginx .conf
syntax is ok nginx:
configuration file /etc/nginx/nginx .conf test is
successful 重新載入
nginx: [確定] |