首頁 >運維 >Nginx >Nginx+Tomcat的伺服器端環境怎麼配置

Nginx+Tomcat的伺服器端環境怎麼配置

WBOY
WBOY轉載
2023-05-13 19:58:04818瀏覽

1、java jdk安裝:

#下載對應的jdk軟體包,然後解壓縮安裝,我這裡包名稱為:jdk-7u25-linux-x64.tar.gz
    

tar -xzf jdk-7u25-linux-x64.tar.gz ;mkdir -p /usr/java/ ;mv jdk1.7.0_25/ /usr/java/ 下.

   
#然後配置環境變量,這樣可以任何地方引用jdk,如下配置:   
   
#vi /etc/profile 最後面加入以下語句:
    

export java_home=/usr/java/jdk1.7.0_25 
 
export classpath=$classpath:$java_home/lib:$java_home/jre/lib 
 
export path=$java_home/bin:$java_home/jre/bin:$path:$homr/bin

   
#source /etc/profile   #使環境變數馬上生效   
#   
#java  --version    #檢視
#   #15.版本即代表java jdk安裝成功。

2、nginx安裝:


wget http://nginx.org/download/nginx-1.2.6.tar.gz 
 
useradd www 
 
tar zxvf nginx-1.2.6.tar.gz 
 
cd nginx-1.2.6/ 
 
./configure --user=www --group=www --prefix=/usr/local/nginx 
 \--with-http_stub_status_module --with-http_ssl_module 
 
make && make install

   
#nginx安裝完畢,然後使用指令:/usr/local/nginx/sbin/nginx -t 測試ok,代表nginx安裝成功。  
   /usr/local/nginx/sbin/nginx 回車啟動nginx,可透過造訪http://ip/看到nginx預設頁面。

3、tomcat安裝:



#官方網站下載tomcat 6.0.30或其他版本:   

    


cd /usr/src && tar xzf apache-tomcat-6.0.30.tar.gz

   
##直接解壓縮就可以使用,解壓縮完成執行,同時拷貝兩個tomcat,命名為tomcat1 tomcat2   

    


mv apache-tomcat-6.0.30 /usr/local/tomcat1 
 
cp /usr/local/tomcat1 /usr/local/tomcat2 -r

   
##分別如下:  
   
shutdown 連接埠:8005  主要負責啟動關閉.  
   
ajp連接埠:8009 主要負責透過ajp均衡(常用於 8080 可透過web頁面直接存取(nginx tomcata整合)  
   
#註* 如果tomcat1三個連接埠分別為:8005 8009 8080 ,那麼tomcat2埠在此基礎上都1,即為:8006 8010 80808 ##   
#一台伺服器上,連接埠無法重複,否則會報錯。
   
#修改完連接埠後,然後啟動兩個tomcat,啟動指令為:  
   
#如何提示沒有這個檔案或權限不足,需要tomcat 的bin目錄對sh檔案賦予執行權限: chmod o x   *.sh   
    

#
/usr/local/tomcat1/bin/startup.sh 
 
/usr/local/tomcat2/bin/startup.sh

   

# 啟動後,使用netstat -tnl 可看到6個連接埠,即代表tomcat1 tomcat2成功啟動。你可以使用http://ip:8080  http://ip:8081來存取tomcat預設頁面。
#如果需要修改tomcat發布目錄為自己制定的目錄,需要做如下調整,建立兩個發布目錄:

mkdir -p /usr/webapps/{www1,www2}

編輯vi /usr/local/tomcat1/conf/server.xml 在最後前一行加上內容:

<context path="" docbase="/usr/webapps/www1" reloadable="false"/>

編輯vi /usr/local/tomcat2/conf/server.xml 在最後前一行加上內容:

<context path="" docbase="/usr/webapps/www2" reloadable="false"/>

tomcat1發佈目錄內容:

<html> 
<body> 
<h1>tomcat_1 jsp test page</h1> 
<%=new java.util.date()%> 
</body> 
</html>

tomcat2發佈目錄內容:

<html> 
<body> 
<h1>tomcat_2 jsp test page</h1> 
<%=new java.util.date()%> 
</body> 
</html>

然後造訪http://ip:8080、8081查看測試內容。

4、nginx tomcat整合:

整合主要是修改nginx.conf配置,給一個完整的nginx.conf線上配置,部分參數可以自己根據實際需求修改:

user www www; 
worker_processes 8; 
pid /usr/local/nginx/nginx.pid; 
worker_rlimit_nofile 102400; 
events 
{ 
use epoll; 
worker_connections 102400; 
} 
http 
{ 
 include  mime.types; 
 default_type application/octet-stream; 
 fastcgi_intercept_errors on; 
 charset utf-8; 
 server_names_hash_bucket_size 128; 
 client_header_buffer_size 4k; 
 large_client_header_buffers 4 32k; 
 client_max_body_size 300m; 
 sendfile on; 
 tcp_nopush  on; 
  
 keepalive_timeout 60; 
  
 tcp_nodelay on; 
 client_body_buffer_size 512k; 
 
 proxy_connect_timeout 5; 
 proxy_read_timeout  60; 
 proxy_send_timeout  5; 
 proxy_buffer_size  16k; 
 proxy_buffers   4 64k; 
 proxy_busy_buffers_size 128k; 
 proxy_temp_file_write_size 128k; 
  
 gzip on; 
 gzip_min_length 1k; 
 gzip_buffers  4 16k; 
 gzip_http_version 1.1; 
 gzip_comp_level 2; 
 gzip_types  text/plain application/x-javascript text/css application/xml; 
 gzip_vary on; 
  
###2012-12-19 change nginx logs 
log_format main &#39;$http_x_forwarded_for - $remote_user [$time_local] "$request" &#39; 
    &#39;$status $body_bytes_sent "$http_referer" &#39; 
    &#39;"$http_user_agent" $request_time $remote_addr&#39;; 
     
upstream web_app { 
 server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s; 
 server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s; 
} 
 
####chinaapp.sinaapp.com 
server { 
 listen 80; 
 server_name chinaapp.sinaapp.com; 
 index index.jsp index.html index.htm; 
 #发布目录/data/www 
 root /data/www; 
  
 location / 
 { 
 proxy_next_upstream http_502 http_504 error timeout invalid_header; 
 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_pass http://web_app; 
 expires  3d; 
 } 
  
 } 
 
}

#註* server段proxy_pass定義的web_app需要跟upstream 裡面定義的web_app一致,否則server找不到均衡。   

#如上配置,nginx tomcat反向代理負載平衡配置完畢,如果要做動靜分離,只需要在nginx新增如下配置就ok了。

 #設定nginx動靜分離   

  

location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ 
 
{ 
 
root /data/www; 
 
#expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力 
 
expires  3d; 
 
}

5、開啟nginx的監控
#1)、nginx簡單狀態監控

在nginx.conf中加入以下程式碼即可監控nginx目前的狀態,然後造訪http://serverip/status即可存取

location /status {
stub_status on;
access_log off;
}

一般顯示為

active connections: 16 
server accepts handled requests
191226 191226 305915 
reading: 0 writing: 1 waiting: 15

ctive connections:對後端發起的活動連線數.

server accepts handled requests: nginx總共處理了24個連線,成功創建24次握手(證明中間沒有失敗的),總共處理了129個請求.

reading: nginx 讀取到客戶端的header訊息數.

writing: nginx 傳回給客戶端的header資訊數.

waiting: 開啟keep-alive的情況下,這個值等於active – (reading writing),意思就是nginx已經處理完成,正在等候下一次請求指令的駐留連接.

注意的,本模組預設是不會編譯進nginx的,如果你要使用該模組,則要在編譯安裝nginx時指定:

 ./configure –with-http_stub_status_module

 查看已安裝的nginx 是否包含stub_status 模組


 #/usr/local/nginx/sbin/nginx -v
tls sni support disabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-file-aio --with-http_ssl_module

2)、nginx的圖形化監控-nginx-rrd stats
 
nginx-rrd是nginx官方推薦的nginx監控工具,利用nginx-rrd可以很方便的生成圖表,方便我們查看。
a、運行環境(centos):

在安装前需要安装好rrdtool这个画图工具和相应的perl模块,可以先运行:

yum install rrdtool libhtml-parser-perl libwww-perl librrds-perl librrd2-dev

确保rrdtool和相应的perl被安装上。

b、安装配置

下载:

wget http://soft.vpser.net/status/nginx-rrd/nginx-rrd-0.1.4.tgz

解压:

tar zxvf nginx-rrd-0.1.4.tgz

进入nginx-rrd目录,

cd nginx-rrd-0.1.4/

复制主程序:

cp usr/sbin/* /usr/sbin

复制配置文件

cp etc/nginx-rrd.conf /etc

复制定时执行文件:

cp etc/cron.d/nginx-rrd.cron /etc/cron.d

创建nginx-rrd生成目录:

mkdir /home/wwwroot/nginx && mkdir /home/wwwroot/nginx/rrd

cp html/index.php /home/wwwroot/nginx

编辑/home/wwwroot/nginx/index.php修改登录密码

<?php
header("content-type: text/html; charset=utf-8");

$password = "admin"; 

.........

编辑配置文件nginx-rrd.conf,修改完成后如下:

#####################################################
#
# dir where rrd databases are stored
rrd_dir="/home/wwwroot/nginx-rrd/";
# dir where png images are presented
www_dir="/home/wwwroot/nginx/";
# process nice level
nice_level="-19";
# bin dir
bin_dir="/usr/sbin";
# servers to test
# server_utl;server_name
servers_url="http://127.0.0.1/status;127.0.0.1"

多个server,可以servers_url中空格分开,前部分为nginx_status的地址,后面为被监控主机的域名。

severs_url 格式

注意,nginx.conf虚拟主机server{}中,需要已经加入:

location /status {
stub_status on;
access_log off;
}

以上设置就完成,可以自行运行一下:/usr/sbin/nginx-collect ,启动收集程序。cron会15分钟生成一次数据。

如果没有定时执行生成数据,可以在/etc/crontab最后面加上:

* * * * * root /usr/sbin/nginx-collect
*/15 * * * * root /usr/sbin/nginx-graph

然后输入然后访问http://serverip/nginx/即可访问。

Nginx+Tomcat的伺服器端環境怎麼配置

6、开启tomcat的监控

1)、tomcat6的配置

修改tomcat/conftomcat-users.xml文件中节点之前添加如下代码即可。

 <user username="admin" password="admin" roles="manager"/>

然后输入然后访问http://serverip:8080/manager/status即可访问。

2)tomcat7的配置

修改tomcat/conftomcat-users.xml文件中节点之前添加如下代码即可。

<role rolename="manager-gui"/>
<user username="tomcat" admin="admin" roles="manager-gui"/>

然后输入然后访问http://serverip:8080/manager/status即可访问。

Nginx+Tomcat的伺服器端環境怎麼配置

以上是Nginx+Tomcat的伺服器端環境怎麼配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除