最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

https nginx tomcat web服務(wù)器的搭建

2023-02-15 09:16 作者:bili_39183997178  | 我要投稿

http

??提供的默認(rèn)配置

–?Listen:監(jiān)聽(tīng)地址:端口(80)

–?ServerName:本站點(diǎn)注冊(cè)的DNS名稱(空缺)

–?DocumentRoot:網(wǎng)頁(yè)根目錄(/var/www/html)

–?DirectoryIndex:起始頁(yè)/首頁(yè)文件名(index.html)

?主配置文件/etc/httpd/conf/httpd.conf

?<Directory ???/>

????Require all denied?????#拒絕所有人訪問(wèn)

</Directory>

?<Directory????"/var/www">

????Require all granted??????#允許所有人訪問(wèn)

??配置文件路徑

–?/etc/httpd/conf/httpd.conf ?#主配置文件

–?/etc/httpd/conf.d/*.conf ??#調(diào)用配置文件

???為每個(gè)虛擬站點(diǎn)添加配置

<VirtualHost ??IP地址:端口>

???????ServerName ?此站點(diǎn)的DNS名稱

???????DocumentRoot ?此站點(diǎn)的網(wǎng)頁(yè)根目錄

</VirtualHost>

?<VirtualHost ??IP地址:端口>

???????ServerName ?此站點(diǎn)的DNS名稱

???????DocumentRoot ?此站點(diǎn)的網(wǎng)頁(yè)根目錄

</VirtualHost>

nginx

yum -y install bash-completion ??//安裝支持tab鍵的軟件包

裝好之后,使用exit退出,重新登錄才生效

Yum -y install net-tools ?//安裝網(wǎng)絡(luò)相關(guān)軟件包

yum?-y?install ?psmisc ??//安裝支持killall命令的軟件

yum -y install bash-completion ??//安裝支持tab鍵的軟件包

裝好之后,使用exit退出,重新登錄才生效

Yum -y install net-tools ?//安裝網(wǎng)絡(luò)相關(guān)軟件包

yum?-y?install ?psmisc ??//安裝支持killall命令的軟件

yum -y install ?gcc??make??//安裝編譯工具

yum -y install ?pcre-devel ?//安裝可以讓nginx支持正則的軟件包

yum -y install ?openssl-devel ?//安裝可以讓nginx支持安裝加密網(wǎng)站

./configure ?--prefix=/usr/local/nginx ?--user=nginx ?--with-http_ssl_module

//配置,--prefix是指定安裝路徑,--user是指定用戶 ?

--with-http_ssl_module是安全網(wǎng)站模塊

ls ?/usr/local/nginx/ ???//安裝好之后查看目錄

conf?存放配置文件 ????sbin??存放主程序

html?存放網(wǎng)站頁(yè)面 ????logs??存放日志

sbin/nginx ?-V?

nginx增加網(wǎng)站認(rèn)證功能

修改nginx配置文件,在40、41行添加兩句 ????

vim ?conf/nginx.conf

auth_basic??"password"; ?//網(wǎng)頁(yè)彈出的提示信息,此信息可能會(huì)根據(jù)

不同瀏覽器顯示效果不一,有的瀏覽器甚至不顯示,但不影響認(rèn)證功能

auth_basic_user_file??"/usr/local/nginx/pass"; ??//存放網(wǎng)站賬戶的文件

?sbin/nginx ?-s reload ??//重加載配置,檢驗(yàn)之前配置,沒(méi)有任何信息即可

yum -y install httpd-tools ??//之后安裝軟件包

htpasswd -c ?pass ?tom ??//創(chuàng)建pass文件,里面創(chuàng)建tom賬戶,之后

會(huì)要求輸入兩次密碼

然后用火狐瀏覽器訪問(wèn)192.168.2.5,可以看到輸入用戶名密碼的對(duì)話框、

輸入用戶名tom以及密碼即可

?htpasswd ?pass ?jerry???//追加一個(gè)賬戶,名字是jerry??

nginx配置虛擬主機(jī)

?http {

server?{ ???//第1個(gè)虛擬主機(jī)

listen 80;

server_name www.a.com;

root html;

index ?index.html;

}

server { ???//第2個(gè)虛擬主機(jī)

。。。。

。。。。

}

}

autoindex on; 表示自動(dòng)在index.html的索引打開(kāi)

autoindex_exact_size on; 表示如果有文件則顯示文件大小

autoindex_localtime on; 表示顯示更改時(shí)間,以當(dāng)前系統(tǒng)時(shí)間為準(zhǔn)

打開(kāi)nginx主配置文件在34~39行添加:

server {

listen 80; ????//監(jiān)聽(tīng)端口號(hào)

server_name www.b.com; ????//域名,默認(rèn)的虛擬主機(jī)改成www.a.com

root html_b; ????//存放網(wǎng)頁(yè)的目錄

index index.html; ????//默認(rèn)頁(yè)名字

}

?sbin/nginx ?-s ?reload ??//之后重新加載配置文件,服務(wù)必須是開(kāi)啟狀態(tài)

搭建安全網(wǎng)站

?vim conf/nginx.conf ???//修改大概103~120行,如果配置恢復(fù)了,就找98~115行

????server { ? //此處的虛擬主機(jī)自帶ssl安全加密功能,將其范圍的注釋取消即可

????????listen ??????443 ssl;

????????server_name ?www.c.com; ?????//這里修改域名

????????ssl_certificate ?????cert.pem; ???//證書(shū),包含公鑰

????????ssl_certificate_key ?cert.key; ????//私鑰

????????ssl_session_cache ???shared:SSL:1m;

????????ssl_session_timeout ?5m;

????????ssl_ciphers ?HIGH:!aNULL:!MD5;

????????ssl_prefer_server_ciphers ?on;

????????location / {

????????????root ??html_c; ????//這里修改頁(yè)面存儲(chǔ)目錄

????????????index ?index.html index.htm;

????????}

}

openssl genrsa > conf/cert.key ??//創(chuàng)建私鑰

?openssl req -x509 -key conf/cert.key > conf/cert.pem ??

//創(chuàng)建證書(shū),證書(shū)中包含公鑰,生成過(guò)程會(huì)詢問(wèn)諸如你在哪個(gè)國(guó)家之類

的問(wèn)題,可以隨意回答,但要走完全過(guò)程

Country Name (2 letter code) [XX]:dc ???國(guó)家名

State or Province Name (full name) []:dc ???省份

Locality Name (eg, city) [Default City]:dc ????城市

Organization Name (eg, company) [Default Company Ltd]:dc ???公司

Organizational Unit Name (eg, section) []:dc ???部門(mén)

Common Name (eg, your name or your server's hostname) []:dc ???服務(wù)器名稱

Email Address []:dc@dc.com ????電子郵件

LNMP

yum -y install ?mariadb ?mariadb-server? ?mariadb-deve? //安裝數(shù)據(jù)庫(kù)客戶端與服務(wù)端

php ?//安裝php,相當(dāng)于解釋器

yum?-y?install ?php-fpm??php ?安裝php,相當(dāng)于解釋器 ?//安裝可以幫助nginx解析php語(yǔ)言編寫(xiě)的動(dòng)

態(tài)網(wǎng)站的服務(wù)

yum?-y?install??php-mysql???//安裝php與mysql關(guān)聯(lián)的軟件包

systemctl?start??php-fpm

nginx配置文件,第65到71行去掉注釋(可以用:65,71s/#//),69行不用去

????????location ~ \.php$ { ??//~是使用正則表達(dá)式,匹配以.php結(jié)尾

????????????root ??????????html; ????//網(wǎng)站頁(yè)面位置,不用改,保持默認(rèn)

????????????fastcgi_pass ??127.0.0.1:9000; ?//一旦用戶訪問(wèn)了.php結(jié)尾的文

件,就讓nginx找后臺(tái)的php-fpm(端口號(hào)9000)

????????????fastcgi_index ?index.php; ???//動(dòng)態(tài)網(wǎng)站的默認(rèn)頁(yè)面,無(wú)需修改

????????# ??fastcgi_param ?SCRIPT_FILENAME ?/scripts$fastcgi_script_name; ??

?//無(wú)用行,保持注釋狀態(tài)

????????????include ???????fastcgi.conf; ?//這里是另外一個(gè)配置文件,需要改擴(kuò)展名

????????}

?fastCGI????快速公共網(wǎng)關(guān)接口,可以連接如nginx等網(wǎng)站程序到網(wǎng)站

地址重寫(xiě)

可以定義用戶的訪問(wèn)路徑可以看到的實(shí)際內(nèi)容

rewrite ?匹配路徑 ??實(shí)際看到的頁(yè)面 ???選項(xiàng)

打開(kāi)配置文件,在38行添加

rewrite ?/a.html ?/b.html; ???//用戶訪問(wèn)的路徑中包含a.html的話

就跳轉(zhuǎn)到b.html頁(yè)面

地址重寫(xiě)測(cè)試3:不同網(wǎng)站間跳轉(zhuǎn)

rewrite / http://www.tmooc.cn; ???//訪問(wèn)192.168.2.5的網(wǎng)站可以

地址重寫(xiě)測(cè)試2:相同網(wǎng)站不同頁(yè)面

rewrite ^/a\.html$ /b.html redirect; ??//在剛剛的配置中添加redirect

地址重寫(xiě)測(cè)試4:不同網(wǎng)站間跳轉(zhuǎn)

rewrite /(.*) http://www.tmooc.cn/$1; ???//訪問(wèn)老網(wǎng)站會(huì)跳到新

網(wǎng)站,同時(shí)會(huì)攜帶所訪問(wèn)的頁(yè)面,()是正則,代表保留(復(fù)制) ?$1表示

粘貼之前第一個(gè)小括號(hào)保留的內(nèi)容

sbin/nginx -s reload??

地址重寫(xiě)測(cè)試5:不同瀏覽器跳轉(zhuǎn)到不同頁(yè)面

修改配置文件,刪除原有地址重寫(xiě),原地添加

if??($http_user_agent ?~* ?firefox){ ??//如果用戶使用了火狐瀏覽器

rewrite ?/(.*) ?/firefox/$1; ?//就進(jìn)行地址重寫(xiě)操作,讓用戶看到火狐專屬頁(yè)面

} ?????????

//$http_user_agent是nginx的內(nèi)置變量,存儲(chǔ)了用戶的信息,比如用的什么瀏覽器

~匹配正則 ?*忽略大小寫(xiě)

選項(xiàng)

redirect????臨時(shí)重定向 ??狀態(tài)碼 ?302 ??爬蟲(chóng)不感興趣

permanent??永久重定向 ?狀態(tài)碼 ?301 ??爬蟲(chóng)感興趣

?以下兩種寫(xiě)法對(duì)于用戶來(lái)說(shuō)效果一樣,但是對(duì)百度這樣的網(wǎng)站不同

rewrite ?^/a.html$ ?/b.html ?permanent;

rewrite ?^/a.html$ ?/b.html ?redirect;

last??不再讀其他rewrite

rewrite ?/a.html ?/b.html ?last;???//不加last的話nginx會(huì)把多個(gè)rewrite語(yǔ)句綜合處理

結(jié)果就是看a頁(yè)面結(jié)果跳到c頁(yè)面了,加了last的話可以避免這個(gè)情況

break??不再讀其他語(yǔ)句

????????location / { ????//此處為默認(rèn)的location

rewrite /a.html /b.html break; ???//將last改為break可以阻止后面的語(yǔ)句,此處

如果是last則無(wú)法阻止后面location語(yǔ)句中的rewrite語(yǔ)句

????????????root ??html;

????????????index ?index.html index.htm;

????????}

location /b.html { ???//這里是新添加的location

rewrite /b.html /c.html;

}

nginx配置文件實(shí)現(xiàn)集群功能

?vim conf/nginx.conf

upstream web { ???????//首先是34~37行,創(chuàng)建集群,集群名稱叫web

server ?192.168.2.100:80; ??//這里是集群中的服務(wù)器ip與端口

server ?192.168.2.200:80; ??//第二臺(tái)集群主機(jī)

}

server {

????????listen ??????80;

????????。。。。

????????location / {

proxy_pass ?http://web; ????//在第47行,調(diào)用集群

????????????root ??html;

????????????index ?index.html index.htm;

????????}

之后開(kāi)啟nginx或者重加載nginx配置,用curl 192.168.2.5可以看到 web1

或web2頁(yè)面輪詢出現(xiàn)

?優(yōu)化

server 192.168.2.200:80 weight=2; ??//為性能較強(qiáng)的集群主機(jī)配置權(quán)重

,權(quán)重越大任務(wù)的分配量就越大

1,?配置健康檢查

server 192.168.2.200:80 max_fails=2 fail_timeout=30;?//檢測(cè)兩次如果失敗

,則認(rèn)為集群中的主機(jī)故障,之后等待30秒再次測(cè)試

相同客戶機(jī)訪問(wèn)相同服務(wù)器

upstream web {

ip_hash; ??//相同客戶機(jī)訪問(wèn)相同服務(wù)器,讓一個(gè)客戶機(jī)訪問(wèn)集群時(shí)鎖定

一個(gè)后臺(tái)服務(wù)器,避免重復(fù)登陸的問(wèn)題

server 192.168.2.100:80;

server 192.168.2.200:80;

server 192.168.2.200:80 down; ?//down標(biāo)記可以讓集群主機(jī)暫時(shí)不參與集群活動(dòng)



四層代理

./configure ?--with-stream ?--with-http_stub_status_module

//這里的--with-stream 是添加四層代理模塊,可以用來(lái)創(chuàng)建其

他業(yè)務(wù)集群,--with-http_stub_status_module是后面實(shí)驗(yàn)所需模塊

另外,如果更新模塊,但不想刪除之前nginx數(shù)據(jù),可以將nginx源碼目錄下的objs目錄中的nginx文件拷貝到nginx的sbin目錄下替代現(xiàn)有主程序,然后killall ?nginx 再重啟即可

打開(kāi)nginx主配置文件,在16行左右(http上面),添加以下內(nèi)容

stream { ????????//創(chuàng)建新業(yè)務(wù)

upstream backend { ???//創(chuàng)建名叫backend的集群

server 192.168.2.100:22; ???//集群中的主機(jī)使用22端口對(duì)外提供服務(wù)

server 192.168.2.200:22;

}

server {

listen 12345; ???//監(jiān)聽(tīng)端口號(hào)

proxy_pass backend; ???//調(diào)用集群

}

}

?sbin/nginx ??//配置寫(xiě)好之后開(kāi)啟服務(wù)或者重加載配置文件

ssh ?192.168.2.5 -p 12345 ???//嘗試遠(yuǎn)程登錄,第一次可能會(huì)連接集群的某一臺(tái)主機(jī)比如web1

exit ???//退出

ss命令可以查看系統(tǒng)中啟動(dòng)的端口信息,該命令常用選項(xiàng)如下:

-a顯示所有端口的信息

-n以數(shù)字格式顯示端口號(hào)

-t顯示TCP連接的端口

-u顯示UDP連接的端口

-l顯示服務(wù)正在監(jiān)聽(tīng)的端口信息,如httpd啟動(dòng)后,會(huì)一直監(jiān)聽(tīng)80端口

-p顯示監(jiān)聽(tīng)端口的服務(wù)名稱是什么(也就是程序名稱)

注意:在RHEL7系統(tǒng)中可以使用ss命令替代netstat命令,功能一樣,選

404報(bào)錯(cuò)

打開(kāi)配置文件,在默認(rèn)的虛擬主機(jī)里面的location下面修改

error_page ?404 ?????/test.jpg; ?//這里把#注釋去掉,后面改成test.jpg

查看網(wǎng)站后臺(tái)數(shù)據(jù)

--with-http_stub_status_module ??//該功能利用的模塊,之前配置nginx已經(jīng)安裝

打開(kāi)配置文件

location /status ?{ ??//在error_page行上面添加此內(nèi)容

stub_status on;????//顯示后臺(tái)的數(shù)據(jù)

allow 192.168.2.5; ???//只允許2.5查看

deny all; ??//拒絕其他

}

curl ?192.168.2.5/status???查看

Active connections:當(dāng)前活動(dòng)的連接數(shù)量(當(dāng)前有多少用戶訪問(wèn)該網(wǎng)站)。

Accepts:已經(jīng)接受客戶端的連接總數(shù)量。

Handled:已經(jīng)處理客戶端的連接總數(shù)量。

Requests:客戶端發(fā)送的請(qǐng)求數(shù)量。

Reading:當(dāng)前服務(wù)器正在讀取客戶端請(qǐng)求頭的數(shù)量。

Writing:當(dāng)前服務(wù)器正在寫(xiě)響應(yīng)信息的數(shù)量。

Waiting:當(dāng)前多少客戶端在等待服務(wù)器的響應(yīng)。

?

nginx問(wèn)題處理

1,?緩存文件在客戶端

用戶如果反復(fù)訪問(wèn)服務(wù)器的相同文件可以緩存到客戶機(jī),避免

服務(wù)器反復(fù)傳送相同文件,節(jié)約時(shí)間

打開(kāi)配置文件,在默認(rèn)的location下面添加一個(gè)location

location ~* \.(jpg|html|txt|mp3)$ { ????//當(dāng)發(fā)現(xiàn)用戶訪問(wèn)的是

以.jpg或者.html等等結(jié)尾的頁(yè)面時(shí)

expires 30d; ??//就把上述訪問(wèn)的文件在客戶機(jī)緩存30天

}

支持超長(zhǎng)地址欄

默認(rèn)情況下nginx無(wú)法支持長(zhǎng)地址欄,會(huì)報(bào)414錯(cuò)誤

?打開(kāi)配置文件,在默認(rèn)的虛擬主機(jī)上方添加兩行

client_header_buffer_size 200k; ??//第一行表示,用戶訪問(wèn)網(wǎng)站的頭部信

息(包含地址欄)長(zhǎng)度支持200k大小

large_client_header_buffers 4 200k; ?//第二行表示,如果200k不夠,再

給4個(gè)200k


優(yōu)化nginx并發(fā)

??隱藏版本信息

[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
... ...
?17 http {
?18 ????server_tokens off;



??防止DOS、DDOS攻擊

??DDOS:分布式拒絕服務(wù)

# 壓力測(cè)試,每批次發(fā)送100個(gè)請(qǐng)求給web服務(wù)器,一共發(fā)200個(gè)
[root@zzgrhel8 ~]# yum install -y httpd-tools
[root@zzgrhel8 ~]# ab -c 100 -n 200 http://192.168.4.11/
... ...
Benchmarking 192.168.4.11 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests ???# 發(fā)送200個(gè)請(qǐng)求完成
... ...
Complete requests: ?????200 ??# 完成了200個(gè)請(qǐng)求
Failed requests: ???????0 ????# 0個(gè)失敗
... ...

??配置nginx連接共享內(nèi)存為10M,每秒鐘只接收一個(gè)請(qǐng)求,最多有5個(gè)請(qǐng)求排隊(duì),多余的拒絕

[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
?17 http {
?18 ????limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ??# 添加
... ...
?37 ????server {
?38 ????????listen ??????80;
?39 ????????server_name ?localhost;
?40 ????????limit_req zone=one burst=5; ?# 添加
[root@node1 ~]# /usr/local/nginx/sbin/nginx -s reload

# 再次測(cè)試
[root@zzgrhel8 ~]# ab -c 100 -n 200 http://192.168.4.11/
... ...
Benchmarking 192.168.4.11 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests
... ...
Complete requests: ?????200
Failed requests: ???????194 ??# 失敗了194個(gè)
... ...

拒絕某些類型的請(qǐng)求

??用戶使用HTTP協(xié)議訪問(wèn)服務(wù)器,一定是通過(guò)某種方法訪問(wèn)的。

??最常用的HTTP方法

–?GET:在瀏覽器中輸入網(wǎng)址、在頁(yè)面中點(diǎn)擊超鏈接、搜索表單。

–?POST:常用于登陸、提交數(shù)據(jù)的表單

??其他HTTP方法不常用,如:

–?HEAD:獲得報(bào)文首部。HEAD 方法和 GET 方法一樣,只是不返回報(bào)文主體部分。

–?PUT:傳輸文件。要求在請(qǐng)求報(bào)文的主體中包含文件內(nèi)容,然后保存到請(qǐng)求 URI 指定的位置。

–?DELETE:刪除文件。DELETE 方法按請(qǐng)求 URI 刪除指定的資源。

# 使用GET和HEAD方法訪問(wèn)nginx。兩種方法都可以訪問(wèn)
[root@zzgrhel8 ~]# curl -i -X GET http://192.168.4.11/
[root@zzgrhel8 ~]# curl -i -X HEAD http://192.168.4.11/


# 配置nginx只接受GET和POST方法
[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
... ...
?37 ????server {
?38 ????????listen ??????80;
?39 ????????if ($request_method !~ ^(GET|POST)$ ) {
?40 ????????????return 444;
?41 ????????}
... ...
# $request_method是內(nèi)置變量,表示請(qǐng)求方法。~表示正則匹配,!表示取反。^表示開(kāi)頭,$表示結(jié)尾,|表示或

[root@node1 ~]# /usr/local/nginx/sbin/nginx -s reload

# 使用GET和HEAD方法訪問(wèn)nginx。只有GET可以工作
[root@zzgrhel8 ~]# curl -i -X GET http://192.168.4.11/
[root@zzgrhel8 ~]# curl -i -X HEAD http://192.168.4.11/

附:取出nginx.conf中注釋和空行以外的行

# -v是取反。^ *#表示開(kāi)頭有0到多個(gè)空格,然后是#。^$表示空行
[root@node1 ~]# egrep -v '^ *#|^$' /usr/local/nginx/conf/nginx.conf

防止緩沖區(qū)溢出

??緩沖區(qū)溢出定義:程序企圖在預(yù)分配的緩沖區(qū)之外寫(xiě)數(shù)據(jù)。

??漏洞危害:用于更改程序執(zhí)行流,控制函數(shù)返回值,執(zhí)行任意代碼。

# 配置nginx緩沖區(qū)大小,防止緩沖區(qū)溢出
[root@node1 ~]# vim /usr/local/nginx/conf/nginx.conf
... ...
?17 http {
?18 ????client_body_buffer_size ????1k;
?19 ????client_header_buffer_size ??1k;
?20 ????client_max_body_size ???????1k;
?21 ????large_client_header_buffers 2 1k;
... ...
[root@node1 ~]# /usr/local/nginx/sbin/nginx -s reload

nginx配置文件修改第3行,第13行-

? ?worker_processes ?2; ??//開(kāi)啟的nginx進(jìn)程數(shù)量,通常是隨cpu的核心數(shù)一致

?????worker_connections ?50000; ??//每個(gè)nginx進(jìn)程支持的并發(fā)訪問(wèn)量

ulimit -n ????//查詢系統(tǒng)打開(kāi)文件數(shù)量的大小

ulimit -n 100000 ??//臨時(shí)定義文件可以同時(shí)被打開(kāi)的次數(shù)為10萬(wàn)

vim /etc/security/limits.conf ??//打開(kāi)配置文件實(shí)現(xiàn)永久修改

修改第53、54行

* ??????????????soft ???nofile ?????????100000

* ??????????????hard ???nofile ????????100000

解決集群主機(jī)過(guò)多而導(dǎo)致用戶重復(fù)登陸網(wǎng)站的問(wèn)題

然后在proxy主機(jī)配置集群,注意該主機(jī)不能有動(dòng)靜分離的配置

upstream web { ????//在默認(rèn)的虛擬主機(jī)上面添加集群

????????server 192.168.2.100:80;

????????server 192.168.2.200:80;

}

?location ?/ ?{

?????proxy_pass http://web; ?//然后在默認(rèn)的虛擬主機(jī)中的location里調(diào)用集群

?

sbin/nginx -s reload ?//重新加載配置文件

memcache??可以利用內(nèi)存讀寫(xiě)數(shù)據(jù)的數(shù)據(jù)庫(kù)服務(wù)? 端口?11211?


主機(jī)修改存儲(chǔ)session文件的位置

vim ?/etc/php-fpm.d/www.conf ??//到最后一頁(yè)

php_value[session.save_handler] = memcache ?//這里改成memcache,表示session

的存儲(chǔ)不在是本地的普通文件,而是去找memcache

php_value[session.save_path] = tcp://192.168.2.5:11211 ??//這里的路徑修改為

安裝了memcache服務(wù)的服務(wù)器地址與端口

yum -y install php-pecl-memcache ??//安裝php與memcached服務(wù)關(guān)聯(lián)的軟件包

systemctl restart php-fpm

tomcat

yum -y install java-1.8.0-openjdk ???//安裝java程序運(yùn)行環(huán)境包

?tomcat目錄:

bin??存放主程序

logs??存放日志

conf??配置文件

webapps ?存放網(wǎng)站頁(yè)面 ?

lib??存放庫(kù)文件

work??存放編譯后頁(yè)面文件

bin/startup.sh ??//開(kāi)啟服務(wù)

bin/shutdown.sh ????//然后重啟tomcat

檢查如果有8005、8009、8080端口則正常

由于tomcat服務(wù)開(kāi)啟時(shí)需要大量隨機(jī)字符,但系統(tǒng)中隨機(jī)字符

不夠多的話會(huì)導(dǎo)致tomcat服務(wù)啟動(dòng)失敗

解決方案1

mv ?/dev/random ?/dev/random.bak ???//將random改名

ln ?-s ?/dev/urandom ?/dev/random ??//用urandom替換random

解決方案2:

yum -y ?install ?rng-tools

systemctl ?start ?rngd

?tomcat搭建虛擬主機(jī)

<Host ?name=域名 appBase=網(wǎng)站頁(yè)面位置 ?>

</Host>

?vim conf/server.xml ?//打開(kāi)配置文件在122行添加虛擬主機(jī)配置

<Host ?name="www.b.com" ?appBase="web_b"> ?????//這里順便把下面的默認(rèn)的

虛擬主機(jī)的name="localhost"改成 name="www.a.com"

</Host>

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true"> ?????//添加unpackWARs自動(dòng)

解war包,和autoDeploy可以自動(dòng)更新開(kāi)發(fā)工程師編寫(xiě)的網(wǎng)站功能代碼

</Host>


tomcat訪問(wèn)路徑與頁(yè)面位置

Context??path??匹配用戶訪問(wèn)路徑 ?

docBase 定義頁(yè)面位置

?測(cè)試 1

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context ?path="" ?docBase="" ?/> ???????

</Host>

?echo "web_b/ROOT/index.html" > web_b/ROOT/index.html ??//默認(rèn)頁(yè)面路徑

echo "web_b/index.html" > web_b/index.html ??//創(chuàng)建素材,定義新路徑

curl ?www.b.com:8080???//測(cè)試可以看到的是默認(rèn)的頁(yè)面路徑

web_b/ROOT/index.html

之后重啟tomcat

curl ?www.b.com:8080????//重啟后測(cè)試可以看到新路徑

web_b/index.html

?測(cè)試 2

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context ?path="" ?docBase="abc" ?/> ??//修改成abc

</Host>

?mkdir ?web_b/abc ???//創(chuàng)建測(cè)試目錄

echo "web_b/abc/index.html" ?> ?web_b/abc/index.html ?//測(cè)試頁(yè)面

重啟tomcat

[root@proxy tomcat]# curl www.b.com:8080???//查看,見(jiàn)到新路徑

web_b/abc/index.html

?測(cè)試 3

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context ?path="" ?docBase="/abc" ?/> ??//修改成/abc

</Host>

?mkdir ?/abc ?//創(chuàng)建測(cè)試目錄

echo ?"/abc/index.html" ?> /abc/index.html ???//創(chuàng)建測(cè)試文件

重啟tomcat

[root@proxy tomcat]# curl www.b.com:8080????//得到新路徑

/abc/index.html

?測(cè)試 4

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context ?path="/test" ?docBase="/abc" ?/> ??//path后面添加內(nèi)容可以匹配

用戶訪問(wèn)路徑,當(dāng)用戶訪問(wèn)www.b.com:8080/test/時(shí),看到的是/abc的內(nèi)容,如果

訪問(wèn)www.b.com:8080就看到web_b/ROOT的內(nèi)容

</Host>

?重啟tomcat

[root@proxy tomcat]# curl www.b.com:8080/test/

/abc/index.html

[root@proxy tomcat]# curl www.b.com:8080

web_b/ROOT/index.html

?測(cè)試 5

<Host name="www.b.com" appBase="web_b"

unpackWARs="true" autoDeploy="true">

<Context ?path="/test" ?docBase="abc" ?/> ????//將/abc改成abc

當(dāng)用戶訪問(wèn)www.b.com:8080/test/時(shí),可以看到web_b/abc里的內(nèi)容

當(dāng)用戶訪問(wèn)www.b.com:8080時(shí)就看到web_b/ROOT的內(nèi)容

重啟tomcat

[root@proxy tomcat]# curl www.b.com:8080/test/ ?

web_b/abc/index.html

[root@proxy tomcat]# curl www.b.com:8080

web_b/ROOT/index.html

給新創(chuàng)建的虛擬主機(jī)添加日志功能

vim conf/server.xml ??//修改配置文件,復(fù)制最后一頁(yè)默認(rèn)虛擬主機(jī)的日志配置

其中prefix是日志名稱suffix是日志后綴名

<Host name="www.b.com" appBase="test01"

unpackWARs="true" autoDeploy="true">

<Context path="" docBase="abc" />

?????<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

???????????????prefix="www_b_com" suffix=".log"

???????????????pattern="%h %l %u %t "%r" %s %b" />

</Host>


使用tomcat搭建https網(wǎng)站

vim conf/server.xml ??//修改配置文件,打開(kāi)找到85行,將前后的注釋刪除 <!-- ??-->

????<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

???????????????maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

???????????????clientAuth="false" sslProtocol="TLS"

keystoreFile="/usr/local/tomcat/keystore"

keystorePass="123456"??/> ??//這里

添加keystoreFile(指定公鑰私鑰文件)和keystorePass(公鑰私鑰文件密碼)

?

keytool ?-genkeypair ?-alias ?tomcat ?-keyalg RSA ?

-keystore ?/usr/local/tomcat/keystore ?//創(chuàng)建密鑰對(duì),別名是tomcat,加

密算法是RSA,最后是存儲(chǔ)位置

輸入密鑰庫(kù)口令:?輸入123456

再次輸入新口令:?再次輸入123456

您的名字與姓氏是什么?

??[Unknown]: ?dc

。。。。。

CN=dc, OU=dc, O=dc, L=dc, ST=dc, C=dc是否正確?

??[否]: ?y

輸入 <tomcat> 的密鑰口令

????????(如果和密鑰庫(kù)口令相同, 按回車):???直接回車

Warning:

ls??//檢查下/usr/local/tomcat下面會(huì)產(chǎn)生keystore則成功


yum?-y install ?rpm-build ???//安裝制作rpm包的工具

[root@proxy ~]# rpmbuild ?-ba ?nginx.spec ?//制作rpm包,但是沒(méi)有配

置文件會(huì)報(bào)錯(cuò),報(bào)錯(cuò)也需要敲,會(huì)產(chǎn)生所需的目錄

[root@proxy ~]# ls????//可以看到一個(gè)rpmbuild目錄

[root@proxy ~]# cp ?~/lnmp_soft/nginx-1.17.6.tar.gz ?rpmbuild/SOURCES/ ?

//拷貝源碼包到rpmbuild的工作目錄

[root@proxy ~]# yum -y install ?gcc ?make ?pcre-devel ?openssl-devel

vim ?rpmbuild/SPECS/nginx.spec ?//編寫(xiě)將nginx轉(zhuǎn)換為rpm包的配置文件

Name:nginx ????//軟件名

Version:1.17.6 ???//版本

Release:1 ??????//發(fā)布的rpm包的版本

Summary:test~ ???//簡(jiǎn)單描述

#Group:

License:GPL ???//授權(quán)協(xié)議 ,GPL表示自由軟件

URL:www.abc.com ???//網(wǎng)址

Source0:nginx-1.17.6.tar.gz ????//源碼包

#BuildRequires: ??

#Requires:

%description ???//詳細(xì)描述

test~ test~

%post ?????//可以添加安裝rpm包之后執(zhí)行的命令,不是必須

useradd ?nginx

%prep

%setup -q

%build

./configure ?//配置,如果要添加選項(xiàng)或者模塊可以繼續(xù)寫(xiě)

make %{?_smp_mflags} ????//編譯

%install

make install DESTDIR=%{buildroot} ???//安裝

%files

%doc

/usr/local/nginx/* ????//將改路徑下文件打包成rpm

%changelog

rpmbuild ?-ba ?rpmbuild/SPECS/nginx.spec ?//根據(jù)上述文件制作rpm包

ls ?rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm ?//查看最終結(jié)果,

已經(jīng)產(chǎn)生nginx的rpm包則成功

?


https nginx tomcat web服務(wù)器的搭建的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
佛坪县| 东城区| 苍南县| 芦溪县| 普兰县| 贺兰县| 新巴尔虎左旗| 荔波县| 突泉县| 玉田县| 玉龙| 南通市| 吉安县| 重庆市| 盐亭县| 纳雍县| 千阳县| 皋兰县| 太白县| 宣化县| 普安县| 三台县| 琼结县| 新源县| 镇康县| 临高县| 巨野县| 桦甸市| 乡城县| 潍坊市| 灵石县| 井研县| 太和县| 车致| 诸暨市| 加查县| 潍坊市| 页游| 子洲县| 丽水市| 赤水市|