国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Nginx Tomcat Mysql

發(fā)布時(shí)間:2021-08-02 23:35 來(lái)源:網(wǎng)絡(luò )整理 閱讀:162 作者:lxcome 欄目: 云計算 歡迎投稿:712375056

修改tomcat安裝目錄bin/catalina.sh,添加export JAVA_OPTS='-Xms1024m -Xmx1024m',前面是初始化內存大小,后面是可以使用最大內存
location ~ \.(html|jsp|gif|jpg|jpeg|png|bmp|js|xml|java|jar|txt|swf|xls|txt)$ {
因為公司上一個(gè)項目使用Rails框架的緣故,這次繼續沿用上一個(gè)框架的前端Nginx,作為一款輕量級的HTTP服務(wù)器,它在Linux平臺上的表現毋庸置疑,本項目只用它來(lái)作為靜態(tài)文件的處理及動(dòng)態(tài)請求的轉發(fā)更是顯得綽綽有余,它的負載均衡功能也為以后的擴展提供良好的保證。由于本項目的后臺開(kāi)發(fā)語(yǔ)言使用JAVA,因此APP上面選用了大名鼎鼎的Tomcat用來(lái)處理前端Nginx轉發(fā)的動(dòng)態(tài)請求。后臺數據采用Mysql,Tomcat與DB使用 JDBC連接。
expires 24h; #控制頁(yè)面緩存時(shí)間

連接參數的配置也是修改connector參數,主要有:

編輯安裝目錄下conf/server.xml
maxSpareThreads="75"
問(wèn)題2:訪(fǎng)問(wèn)Nginx上的應用連接不到數據庫,但直接訪(fǎng)問(wèn)Tomcat正常。將Nginx指向其他APP訪(fǎng)問(wèn)正常,說(shuō)明Nginx配置沒(méi)有問(wèn)題,連接不到數據庫是因為Nginx連接不到Tomcat,而Tomcat連接著(zhù)數據庫,Nginx只能訪(fǎng)問(wèn)自己本地的項目。從以上判斷應該是Tomcat上項目的權限問(wèn)題。找到故障點(diǎn)后著(zhù)手解決,發(fā)現Tomcat上項目主目錄下沒(méi)有crossdomain.xml文件,這是Tomcat的跨域策略文件,配置后問(wèn)題解決。

最后將項目的靜態(tài)文件及動(dòng)態(tài)文件分別部署到Nginx和Tomcat上,做到動(dòng)靜分離。Tomcat上沒(méi)有必要放置多余的靜態(tài)文件,但要配置好和后臺數據庫連接的jdbc,如:


www - nofile 1006154
#Nginx支持if判斷并內置很多變量,如下面的$request_filename為請求的文件名。該if語(yǔ)句在location{}中,因此判斷以.html .jsp等結尾的文件請求如果在本地不存在,則轉發(fā)到tomcatapp中去處理。if語(yǔ)句在Nginx中一般和rewrite搭配用以實(shí)現URL的重定向。需要注意的是安裝Nginx時(shí)./configure后面要有--with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module等幾個(gè)參數,否則nginx.conf中出現if會(huì )報錯如:nginx unknown directive "if" in /usr/local/nginx/conf/nginx.conf。至于哪個(gè)參數決定可以使用if還沒(méi)有測試,總之都加上就好。


keepalive_timeout 65; #設置長(cháng)連接超時(shí)時(shí)間





}





}
第一階段:3臺服務(wù)器組成的Nginx+Tomcat+Mysql可擴展架構





sendfile on;

數據庫名.表名可以*.*表示所有



之后FLUSH PRIVILEGES;即可
break;

mysql -uroot -p
}

第一階段的生產(chǎn)環(huán)境搭建完畢,還有很多需要測試和優(yōu)化的地方,這期間Google也幫了大忙,第二階段的擴展也會(huì )在這個(gè)基礎上展開(kāi),記錄與總結也會(huì )繼續。

1、架構
proxy_pass ; #這是要轉發(fā)的服務(wù)器列表,名字隨便起,要和upstream后面接的列表名對應

#error_log logs/error.log notice;
配置開(kāi)啟最大線(xiàn)程為500,25個(gè)空線(xiàn)程等待,75個(gè)最大空線(xiàn)程等待及連接數大于maxThreads時(shí)最多允許100個(gè)連接等待。以上根據實(shí)際項目配置,也可以配置線(xiàn)程池。
jdbc.driverClassName=com.mysql.jdbc.Driver



#下面開(kāi)始虛擬主機的配置
2.2.2線(xiàn)程及連接
#以下配置設置Nginx在反向代理的時(shí)候發(fā)送域名和用戶(hù)真實(shí)IP給后端APP

#user nobody;
jdbc.password=root

/>



Tomcat要根據實(shí)際的生產(chǎn)環(huán)境進(jìn)行優(yōu)化,主要有以下幾個(gè)需要修改的地方
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

格式:grant 權限 on 數據庫名.表名 to 用戶(hù)@登錄主機 identified by "用戶(hù)密碼";
events {

use epoll; #使用epoll模式


問(wèn)題3:一切就緒后使用Loadrunner進(jìn)行壓力測試,Nginx日志報錯accept() failed (24: Too many open files),這是由于服務(wù)器開(kāi)的文件描述符太小造成。ulimit –n只能改變當前shell的設定,要永久改變有以下三步:






Tomcat集群是在多臺主機上實(shí)現負載均衡的技術(shù),由于A(yíng)PP目前只有一臺主機,集群到了第二階段才能考慮。

#charset koi8-r;


proxy_pass ;
maxThreads="500"



}
2.2.1內存





2.1 Nginx配置
}

error_page 500 502 503 504 /50x.html;
Nginx配置文件nginx.conf:
#gzip on;

default_type application/octet-stream;
session required /lib/security/pam_limits.so

#access_log logs/host.access.log main;
}
server_name 192.168.1.3; #本機IP,寫(xiě)localhost或申請的域名也可以,URL處輸入
問(wèn)題1:連接不到后臺數據庫,但數據庫本身沒(méi)有問(wèn)題,服務(wù)開(kāi)啟并且也可以登錄。在排除了防火墻之類(lèi)的配置后,用其他主機遠程登錄提示Access denied for user 'root'@'ip' (using password: YES),mysql默認禁止遠程連接,解決辦法:

MaxKeepAliveRequests 為一次連接可以進(jìn)行的HTTP請求的最大請求次數,1表示禁用,-1表示不限制個(gè)數,默認100個(gè),一般設置在100~200之間

listen 80; #開(kāi)啟80端口提供服務(wù)





權限分為select,update,insert,delete或者直接all
proxy_redirect off;
#下面是配置.html .jsp .swf等靜態(tài)文件本地處理,要用到正則表達式

proxy_set_header X-Real-IP $remote_addr;
2.2.4集群

(1.) /etc/pam.d/login添加

<Connector port="8080"

用戶(hù)密碼不是本機真實(shí)密碼,為本機給遠程登陸用戶(hù)設的密碼


location = /50x.html {
}

minSpareThreads="25"
index index.jsp index.html index.htm;

#pid logs/nginx.pid;


worker_connections 60000; #允許的連接數

3、部署及問(wèn)題

root /var/www;



#error_log logs/error.log;
虛擬主機是在一個(gè)實(shí)例中的server.xml中配置多個(gè)虛擬目錄以指向相同或不同項目,多實(shí)例是安裝多個(gè)Tomcat實(shí)例,修改為不同端口,啟動(dòng)不同進(jìn)程實(shí)現不同項目或者同項目的訪(fǎng)問(wèn),與虛擬主機不同的是多實(shí)例可以實(shí)現簡(jiǎn)單的單臺主機上的負載均衡。具體配置這里不介紹了。
2、配置


if (!-f $request_filename) {
www 是一個(gè)用戶(hù),如果是想所有用戶(hù)生效的話(huà)換成 * ,設置的數值與硬件配置有關(guān),別設置太大
proxy_set_header Host $host;
#access_log logs/access.log main;
登錄主機'%'表示所有
upstream tomcatapp { #轉發(fā)并負載均衡的服務(wù)器寫(xiě)在這下面
jdbc.username=root
2.2 Tomcat配置
location / {
connectionTimeout 網(wǎng)絡(luò )連接超時(shí),單位毫秒,設置為0表示永不超時(shí)
Mysql的表結構是開(kāi)發(fā)人員根據程序需要來(lái)設計,這個(gè)要根據項目區分。

(2.) /etc/security/limits.conf添加

http {


#以下為全局配置,除了以上的靜態(tài)文件之外,所有請求都轉發(fā)給proxy_pass后設置的服務(wù)器列表去處理
server 192.168.1.2; #Tomcat服務(wù)器地址


(3.) 修改/etc/rc.local添加

root /var/www; #Nginx根目錄,可以在http、server或location設置
}




#error_log logs/error.log info;

echo 8061540 > /proc/sys/fs/file-max
include mime.types;

server {



2.2.3多虛擬主機及多實(shí)例

worker_processes 8; #開(kāi)啟8個(gè)進(jìn)程,根據CPU個(gè)數調整
acceptCount="100"


別忘了還有個(gè)連接DB的驅動(dòng)jar包。這樣一個(gè)Nginx+Tomcat+Mysql架構的項目就部署完畢。接下來(lái)說(shuō)說(shuō)遇到的問(wèn)題。
keepAliveTimeout 長(cháng)連接最大保持時(shí)間,單位毫秒





jdbc.url=jdbc:mysql://192.168.1.1:3306/kingdom?characterEncoding=utf-8
2.3 Mysql
mysql>GRANT all privileges ON *.* to root@'%' IDENTIFIED BY "root" with grant option;

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

精品一区二区三区免费视频| 久久精品国产亚洲AV天海翼| AWWW在线天堂BD资源在线| 久久综合色一综合色88欧美| 久久97久久97精品免视看| 亚洲人片在线观看天堂无码|