¸üÐÂʱ¼ä:2021Äê07ÔÂ16ÈÕ14ʱ58·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:
´ÓÇ°ÃæµÄÄÚÈÝѧϰÖУ¬ÎÒÃÇÖªµÀNginxµÄºËÐÄÅäÖÃÎļþĬÈÏÊÇ·ÅÔÚ/usr/local/nginx/conf/nginx.conf£¬ÕâÒ»½Ú£¬ÎÒÃǾÍÀ´Ñ§Ï°ÏÂnginx.confµÄÄÚÈݺͻù±¾ÅäÖ÷½·¨¡£
¶ÁÈ¡Nginx×Ô´øµÄNginxÅäÖÃÎļþ£¬ÎÒÃǽ«ÆäÖеÄ×¢ÊͲ¿·Ö¡¾Ñ§Ï°Ò»¸ö¼¼Êõµã¾ÍÊÇÔÚNginxµÄÅäÖÃÎļþÖпÉÒÔʹÓÃ#À´×¢ÊÍ¡¿É¾³ýµôºó£¬¾ÍÊ£ÏÂÏÂÃæÄÚÈÝ:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
Ö¸ÁîÃû Ö¸ÁîÖµ; #È«¾Ö¿é£¬Ö÷ÒªÉèÖÃNginx·þÎñÆ÷ÕûÌåÔËÐеÄÅäÖÃÖ¸Áî
#events¿é,Ö÷ÒªÉèÖÃ,Nginx·þÎñÆ÷ÓëÓû§µÄÍøÂçÁ¬½Ó,ÕâÒ»²¿·Ö¶ÔNginx·þÎñÆ÷µÄÐÔÄÜÓ°Ïì½Ï´ó
events {
Ö¸ÁîÃû Ö¸ÁîÖµ;
}
#http¿é£¬ÊÇNginx·þÎñÆ÷ÅäÖÃÖеÄÖØÒª²¿·Ö£¬´úÀí¡¢»º´æ¡¢ÈÕÖ¾¼Ç¼¡¢µÚÈý·½Ä£¿éÅäÖÃ...
http {
Ö¸ÁîÃû Ö¸ÁîÖµ;
server { #server¿é£¬ÊÇNginxÅäÖúÍÐéÄâÖ÷»úÏà¹ØµÄÄÚÈÝ
Ö¸ÁîÃû Ö¸ÁîÖµ;
location / {
#location¿é£¬»ùÓÚNginx·þÎñÆ÷½ÓÊÕÇëÇó×Ö·û´®ÓëlocationºóÃæµÄÖµ½øÐÐÆ¥Å䣬¶ÔÌØ¶¨ÇëÇó½øÐд¦Àí
Ö¸ÁîÃû Ö¸ÁîÖµ;
}
}
...
}
¼òµ¥Ð¡½áÏÂ:
nginx.confÅäÖÃÎļþÖÐĬÈÏÓÐÈý´ó¿é£ºÈ«¾Ö¿é¡¢events¿é¡¢http¿é¡£http¿éÖпÉÒÔÅäÖöà¸öserver¿é£¬Ã¿¸öserver¿éÓÖ¿ÉÒÔÅäÖöà¸ölocation¿é¡£
È«¾Ö¿é
(1)user:ÓÃÓÚÅäÖÃÔËÐÐNginx·þÎñÆ÷µÄworker½ø³ÌµÄÓû§ºÍÓû§×é¡£
| Óï·¨ | user user [group] |
| ĬÈÏÖµ | nobody |
| λÖà | È«¾Ö¿é |
¸ÃÊôÐÔÒ²¿ÉÒÔÔÚ±àÒëµÄʱºòÖ¸¶¨£¬Óï·¨ÈçÏÂ./configure --user=user --group=group,Èç¹ûÁ½¸öµØ·½¶¼½øÐÐÁËÉèÖã¬×îÖÕÉúЧµÄÊÇÅäÖÃÎļþÖеÄÅäÖá£
¸ÃÖ¸ÁîµÄʹÓò½Öè:
(1)ÉèÖÃÒ»¸öÓû§ÐÅÏ¢"www"
user www;

(2)´´½¨Ò»¸öÓû§
useradd www
(3)ÐÞ¸ÄuserÊôÐÔ
user www
(4)´´½¨/root/html/index.htmlÒ³Ãæ£¬Ìí¼ÓÈçÏÂÄÚÈÝ
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
<p><em>I am WWW</em></p>
</body>
</html>
(5)ÐÞ¸Änginx.conf
location / {
root /root/html;
index index.html index.htm;
}
(6)²âÊÔÆô¶¯·ÃÎÊ
Ò³Ãæ»á±¨403¾Ü¾ø·ÃÎʵĴíÎó
(7)·ÖÎöÔÒò
ÒòΪµ±Ç°Óû§Ã»ÓзÃÎÊ/root/htmlĿ¼µÄȨÏÞ
(8)½«Îļþ´´½¨µ½ /home/www/html/index.html,ÐÞ¸ÄÅäÖÃ
location / {
root /home/www/html;
index index.html index.htm;
}
(9)ÔٴβâÊÔÆô¶¯·ÃÎÊ
ÄÜÕý³£·ÃÎÊ¡£
master_process:ÓÃÀ´Ö¸¶¨ÊÇ·ñ¿ªÆô¹¤×÷½ø³Ì¡£
| Óï·¨ | master_process on|off; |
| ĬÈÏÖµ | master_process on; |
| λÖà | È«¾Ö¿é |
worker_processes:ÓÃÓÚÅäÖÃNginxÉú³É¹¤×÷½ø³ÌµÄÊýÁ¿£¬Õâ¸öÊÇNginx·þÎñÆ÷ʵÏÖ²¢·¢´¦Àí·þÎñµÄ¹Ø¼üËùÔÚ¡£ÀíÂÛÉÏÀ´Ëµworkder processµÄÖµÔ½´ó£¬¿ÉÒÔÖ§³ÖµÄ²¢·¢´¦ÀíÁ¿Ò²Ô½¶à£¬µ«ÊÂʵÉÏÕâ¸öÖµµÄÉ趨ÊÇÐèÒªÊܵ½À´×Ô·þÎñÆ÷×ÔÉíµÄÏÞÖÆ£¬½¨Ò齫¸ÃÖµºÍ·þÎñÆ÷CPUµÄÄÚºËÊý±£´æÒ»Ö¡£
| Óï·¨ | worker_processes num/auto; |
| ĬÈÏÖµ | 1 |
| λÖà | È«¾Ö¿é |
Èç¹û½«worker_processesÉèÖóÉ2£¬Ôò»á¿´µ½ÈçÏÂÄÚÈÝ:

ÆäËûÖ¸Áî
daemon£ºÉ趨NginxÊÇ·ñÒÔÊØ»¤½ø³ÌµÄ·½Ê½Æô¶¯¡£
ÊØ»¤Ê½½ø³ÌÊÇlinuxºǫִ́ÐеÄÒ»ÖÖ·þÎñ½ø³Ì£¬ÌصãÊǶÀÁ¢ÓÚ¿ØÖÆÖÕ¶Ë£¬²»»áËæ×ÅÖն˹رնøÍ£Ö¹¡£
| Óï·¨ | daemon on|off; |
| ĬÈÏÖµ | daemon on; |
| λÖà | È«¾Ö¿é |
pid:ÓÃÀ´ÅäÖÃNginxµ±Ç°master½ø³ÌµÄ½ø³ÌºÅID´æ´¢µÄÎļþ·¾¶¡£
| Óï·¨ | pid file; |
| ĬÈÏÖµ | ĬÈÏΪ:/usr/local/nginx/logs/nginx.pid |
| λÖà | È«¾Ö¿é |
¸ÃÊôÐÔ¿ÉÒÔͨ¹ý./configure --pid-path=PATHÀ´Ö¸¶¨
error_log:ÓÃÀ´ÅäÖÃNginxµÄ´íÎóÈÕÖ¾´æ·Å·¾¶
| Óï·¨ | include file; |
| ĬÈÏÖµ | ÎÞ |
| λÖà | any |
(1)accept_mutex:ÓÃÀ´ÉèÖÃNginxÍøÂçÁ¬½ÓÐòÁл¯
| Óï·¨ | error_log file [ÈÕÖ¾¼¶±ð]; |
| ĬÈÏÖµ | error_log logs/error.log error; |
| λÖà | È«¾Ö¿é¡¢http¡¢server¡¢location |
¸ÃÊôÐÔ¿ÉÒÔͨ¹ý./configure --error-log-path=PATHÀ´Ö¸¶¨
ÆäÖÐÈÕÖ¾¼¶±ðµÄÖµÓУºdebug|info|notice|warn|error|crit|alert|emerg£¬·Òë¹ýÀ´ÎªÊÔ|ÐÅÏ¢|֪ͨ|¾¯¸æ|´íÎó|ÁÙ½ç|¾¯±¨|½ô¼±£¬Õâ¿é½¨Òé´ó¼ÒÉèÖõÄʱºò²»ÒªÉèÖóÉinfoÒÔϵĵȼ¶£¬ÒòΪ»á´øÀ´´óÁ¿µÄ´ÅÅÌI/OÏûºÄ£¬Ó°ÏìNginxµÄÐÔÄÜ¡£
(5)include:ÓÃÀ´ÒýÈëÆäËûÅäÖÃÎļþ£¬Ê¹NginxµÄÅäÖøü¼ÓÁé»î
| Óï·¨ | accept_mutex on|off; |
| ĬÈÏÖµ | accept_mutex on; |
| λÖà | events |
Õâ¸öÅäÖÃÖ÷Òª¿ÉÒÔÓÃÀ´½â¾ö³£ËµµÄ"¾ªÈº"ÎÊÌâ¡£´óÖÂÒâ˼ÊÇÔÚijһ¸öʱ¿Ì£¬¿Í»§¶Ë·¢À´Ò»¸öÇëÇóÁ¬½Ó£¬Nginxºǫ́ÊÇÒÔ¶à½ø³ÌµÄ¹¤×÷ģʽ£¬Ò²¾ÍÊÇ˵Óжà¸öworker½ø³Ì»á±»Í¬Ê±»½ÐÑ£¬µ«ÊÇ×îÖÕÖ»»áÓÐÒ»¸ö½ø³Ì¿ÉÒÔ»ñÈ¡µ½Á¬½Ó£¬Èç¹ûÿ´Î»½ÐѵĽø³ÌÊýĿ̫¶à£¬¾Í»áÓ°ÏìNginxµÄÕûÌåÐÔÄÜ¡£Èç¹û½«ÉÏÊöÖµÉèÖÃΪon(¿ªÆô״̬)£¬½«»á¶Ô¶à¸öNginx½ø³Ì½ÓÊÕÁ¬½Ó½øÐÐÐòÁкţ¬Ò»¸ö¸öÀ´»½ÐѽÓÊÕ£¬¾Í·ÀÖ¹Á˶à¸ö½ø³Ì¶ÔÁ¬½ÓµÄÕùÇÀ¡£
(2)multi_accept:ÓÃÀ´ÉèÖÃÊÇ·ñÔÊÐíͬʱ½ÓÊÕ¶à¸öÍøÂçÁ¬½Ó
| Óï·¨ | multi_accept on|off; |
| ĬÈÏÖµ | multi_accept off; |
| λÖà | events |
Èç¹ûmulti_accept±»½ûÖ¹ÁË£¬nginxÒ»¸ö¹¤×÷½ø³ÌÖ»ÄÜͬʱ½ÓÊÜÒ»¸öеÄÁ¬½Ó¡£·ñÔò£¬Ò»¸ö¹¤×÷½ø³Ì¿ÉÒÔͬʱ½ÓÊÜËùÓеÄÐÂÁ¬½Ó
(3)worker_connections£ºÓÃÀ´ÅäÖõ¥¸öworker½ø³Ì×î´óµÄÁ¬½ÓÊý
| Óï·¨ | worker_connections number; |
| ĬÈÏÖµ | worker_commections 512; |
| λÖà | events |
ÕâÀïµÄÁ¬½ÓÊý²»½ö½ö°üÀ¨ºÍǰ¶ËÓû§½¨Á¢µÄÁ¬½ÓÊý£¬¶øÊǰüÀ¨ËùÓпÉÄܵÄÁ¬½ÓÊý¡£ÁíÍ⣬numberÖµ²»ÄÜ´óÓÚ²Ù×÷ϵͳ֧³Ö´ò¿ªµÄ×î´óÎļþ¾ä±úÊýÁ¿¡£
(4)use:ÓÃÀ´ÉèÖÃNginx·þÎñÆ÷Ñ¡ÔñÄÄÖÖʼþÇý¶¯À´´¦ÀíÍøÂçÏûÏ¢¡£
| Óï·¨ | use method; |
| ĬÈÏÖµ | ¸ù¾Ý²Ù×÷ϵͳ¶¨ |
| λÖà | events |
×¢Ò⣺´Ë´¦ËùÑ¡Ôñʼþ´¦ÀíÄ£ÐÍÊÇNginxÓÅ»¯²¿·ÖµÄÒ»¸öÖØÒªÄÚÈÝ£¬methodµÄ¿ÉѡֵÓÐselect/poll/epoll/kqueueµÈ£¬Ö®Ç°ÔÚ×¼±¸centos»·¾³µÄʱºò£¬ÎÒÃÇÇ¿µ÷¹ýҪʹÓÃlinuxÄÚºËÔÚ2.6ÒÔÉÏ£¬¾ÍÊÇΪÁËÄÜʹÓÃepollº¯ÊýÀ´ÓÅ»¯Nginx¡£
ÁíÍâÕâЩֵµÄÑ¡Ôñ£¬ÎÒÃÇÒ²¿ÉÒÔÔÚ±àÒëµÄʱºòʹÓÃ
--with-select_module¡¢--without-select_module¡¢
--with-poll_module¡¢--without-poll_moduleÀ´ÉèÖÃÊÇ·ñÐèÒª½«¶ÔÓ¦µÄʼþÇý¶¯Ä£¿é±àÒëµ½NginxµÄÄںˡ£
´ò¿ªNginxµÄÅäÖÃÎļþ nginx.conf,Ìí¼ÓÈçÏÂÅäÖÃ
events{
accept_mutex on;
multi_accept on;
worker_commections 1024;
use epoll;
}
Æô¶¯²âÊÔ
./nginx -t ./nginx -s reload
¶¨ÒåMIME-Type
ÎÒÃǶ¼ÖªµÀä¯ÀÀÆ÷ÖпÉÒÔÏÔʾµÄÄÚÈÝÓÐHTML¡¢XML¡¢GIFµÈÖÖÀà·±¶àµÄÎļþ¡¢Ã½ÌåµÈ×ÊÔ´£¬ä¯ÀÀÆ÷ΪÁËÇø·ÖÕâЩ×ÊÔ´£¬¾ÍÐèҪʹÓÃMIME Type¡£ËùÒÔ˵MIME TypeÊÇÍøÂç×ÊÔ´µÄýÌåÀàÐÍ¡£Nginx×÷Ϊweb·þÎñÆ÷£¬Ò²ÐèÒªÄܹ»Ê¶±ðǰ¶ËÇëÇóµÄ×ÊÔ´ÀàÐÍ¡£
ÔÚNginxµÄÅäÖÃÎļþÖУ¬Ä¬ÈÏÓÐÁ½ÐÐÅäÖÃ
include mime.types; default_type application/octet-stream;
(1)default_type:ÓÃÀ´ÅäÖÃNginxÏìӦǰ¶ËÇëÇóĬÈϵÄMIMEÀàÐÍ¡£
| Óï·¨ | default_type mime-type; |
| ĬÈÏÖµ | default_type text/plain£» |
| λÖà | http¡¢server¡¢location |
ÔÚdefault_type֮ǰ»¹ÓÐÒ»¾äinclude mime.types,include֮ǰÎÒÃÇÒѾ½éÉܹý£¬Ï൱ÓÚ°Ñmime.typesÎļþÖÐMIMTÀàÐÍÓëÏà¹ØÀàÐÍÎļþµÄÎļþºó׺ÃûµÄ¶ÔÓ¦¹ØÏµ¼ÓÈëµ½µ±Ç°µÄÅäÖÃÎļþÖС£
¾ÙÀýÀ´ËµÃ÷£º
ÓÐЩʱºòÇëÇóijЩ½Ó¿ÚµÄʱºòÐèÒª·µ»ØÖ¸¶¨µÄÎı¾×Ö·û´®»òÕßjson×Ö·û´®£¬Èç¹ûÂß¼·Ç³£¼òµ¥»òÕ߸ɴàÊǹ̶¨µÄ×Ö·û´®£¬ÄÇô¿ÉÒÔʹÓÃnginx¿ìËÙʵÏÖ£¬ÕâÑù¾Í²»Óñàд³ÌÐòÏìÓ¦ÇëÇóÁË£¬¿ÉÒÔ¼õÉÙ·þÎñÆ÷×ÊÔ´Õ¼Óò¢ÇÒÏìÓ¦ÐÔÄܷdz£¿ì¡£
ÈçºÎʵÏÖ:
location /get_text {
#ÕâÀïÒ²¿ÉÒÔÉèÖóÉtext/plain
default_type text/html;
return 200 "This is nginx's text";
}
location /get_json{
default_type application/json;
return 200 '{"name":"TOM","age":18}';
}
NginxÖÐÈÕÖ¾µÄÀàÐÍ·Öaccess.log¡¢error.log¡£
access.log:ÓÃÀ´¼Ç¼Óû§ËùÓеķÃÎÊÇëÇó¡£
error.log:¼Ç¼nginx±¾ÉíÔËÐÐʱµÄ´íÎóÐÅÏ¢£¬²»»á¼Ç¼Óû§µÄ·ÃÎÊÇëÇó¡£
Nginx·þÎñÆ÷Ö§³Ö¶Ô·þÎñÈÕÖ¾µÄ¸ñʽ¡¢´óС¡¢Êä³öµÈ½øÐÐÉèÖã¬ÐèҪʹÓõ½Á½¸öÖ¸Á·Ö±ðÊÇaccess_logºÍlog_formatÖ¸Áî¡£
(1)access_log:ÓÃÀ´ÉèÖÃÓû§·ÃÎÊÈÕÖ¾µÄÏà¹ØÊôÐÔ¡£
| Óï·¨ | access_log path[format[buffer=size]] |
| ĬÈÏÖµ | access_log logs/access.log combined; |
| λÖà | http, server, location |
(2)log_format:ÓÃÀ´Ö¸¶¨ÈÕÖ¾µÄÊä³ö¸ñʽ¡£
| Óï·¨ | log_format name [escape=default|json|none] string....; |
| ĬÈÏÖµ | log_format combined "..."; |
| λÖà | http |
ÆäËûÅäÖÃÖ¸Áî
(1)sendfile:ÓÃÀ´ÉèÖÃNginx·þÎñÆ÷ÊÇ·ñʹÓÃsendfile()´«ÊäÎļþ£¬¸ÃÊôÐÔ¿ÉÒÔ´ó´óÌá¸ßNginx´¦Àí¾²Ì¬×ÊÔ´µÄÐÔÄÜ
| Óï·¨ | sendfile on|off£» |
| ĬÈÏÖµ | sendfile off; |
| λÖà | http¡¢server¡¢location |
(2)keepalive_timeout:ÓÃÀ´ÉèÖó¤Á¬½ÓµÄ³¬Ê±Ê±¼ä¡£
ΪʲôҪʹÓÃkeepalive?
ÎÒÃǶ¼ÖªµÀHTTPÊÇÒ»ÖÖÎÞ״̬ÐÒ飬¿Í»§¶ËÏò·þÎñ¶Ë·¢ËÍÒ»¸öTCPÇëÇ󣬷þÎñ¶ËÏìÓ¦Íê±Ïºó¶Ï¿ªÁ¬½Ó¡£
ÈçºÎ¿Í»§¶ËÏò·þÎñ¶Ë·¢ËͶà¸öÇëÇó£¬Ã¿¸öÇëÇó¶¼ÐèÒªÖØÐ´´½¨Ò»´ÎÁ¬½Ó£¬Ð§ÂÊÏà¶ÔÀ´Ëµ±È½Ï¶à£¬Ê¹ÓÃkeepaliveģʽ£¬¿ÉÒÔ¸æËß·þÎñÆ÷¶ËÔÚ´¦ÀíÍêÒ»¸öÇëÇóºó±£³ÖÕâ¸öTCPÁ¬½ÓµÄ´ò¿ª×´Ì¬£¬Èô½ÓÊÕµ½À´×ÔÕâ¸ö¿Í»§¶ËµÄÆäËûÇëÇ󣬷þÎñ¶Ë¾Í»áÀûÓÃÕâ¸öδ±»¹Ø±ÕµÄÁ¬½Ó£¬¶ø²»ÐèÒªÖØÐ´´½¨Ò»¸öÐÂÁ¬½Ó£¬ÌáÉýЧÂÊ£¬µ«ÊÇÕâ¸öÁ¬½ÓÒ²²»ÄÜÒ»Ö±±£³Ö£¬ÕâÑùµÄ»°£¬Á¬½ÓÈç¹û¹ý¶à£¬Ò²»áÊÇ·þÎñ¶ËµÄÐÔÄÜϽµ£¬Õâ¸öʱºò¾ÍÐèÒªÎÒÃǽøÐÐÉèÖÃÆäµÄ³¬Ê±Ê±¼ä¡£
| Óï·¨ | keepalive_timeout time; |
| ĬÈÏÖµ | keepalive_timeout 75s; |
| λÖà | http¡¢server¡¢location |
(3)keepalive_requests:ÓÃÀ´ÉèÖÃÒ»¸ökeep-aliveÁ¬½ÓʹÓõĴÎÊý¡£
| Óï·¨ | keepalive_requests number; |
| ĬÈÏÖµ | keepalive_requests 100; |
| λÖà | http¡¢server¡¢location |
server¿éºÍlocation¿é
server¿éºÍlocation¿é¶¼ÊÇÎÒÃÇÒªÖØµã½²½âºÍѧϰµÄÄÚÈÝ£¬ÒòΪÎÒÃǺóÃæ»á¶ÔNginxµÄ¹¦ÄܽøÐÐÏêϸ½²½â£¬ËùÒÔÕâ¿éÄÚÈݾͷŵ½¾²Ì¬×ÊÔ´²¿ÊðµÄµØ·½¸ø´ó¼ÒÏêϸ˵Ã÷¡£
±¾½ÚÎÒÃÇÖ÷ÒªÀ´ÈÏʶÏÂNginxĬÈϸøµÄnginx.confÖеÄÏà¹ØÄÚÈÝ£¬ÒÔ¼°server¿éÓëlocation¿éÔÚʹÓõÄʱºòÐèҪעÒâµÄһЩÄÚÈÝ¡£
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 404 /50x.html;
location = /50x.html {
root html;
}
}
½«±¾Ò³ÃæÁ´½Óhttp://www.itcast.cn/news/20210716/1458419603.shtml·¢Ë͸øQQ£º435946716£¬Ãâ·Ñ»ñÈ¡ÉÏÃæ¿Î³ÌÈ«Ì×ÊÓÆµ¡¢±Ê¼ÇºÍÔ´Âë¡£
²ÂÄãϲ»¶£º
NginxÊÓÆµ½Ì³ÌÏÂÔØ
nginxÅäÖÃÎļþÏê½â
JavaÖÐfinal¹Ø¼ü×ÖÈçºÎʹÓã¿
JavaÖÐvolatile¹Ø¼ü×ÖÓÐʲô×÷Óã¿
ÀÖÓãµç¾ºjava¿ª·¢Åàѵ¿Î³Ì
final¹Ø¼ü×ÖµÄ×÷ÓúÍÌØµã¡¾final¹Ø¼ü×ÖµÄ×÷ÓÃÏêϸ½éÉÜ¡¿
2021-07-13Java°²×°½Ì³ÌÏÂÔØºÍ»·¾³±äÁ¿ÅäÖý̳Ì
2021-07-13Java¸ß²¢·¢½â¾ö·½°¸:Java´¦Àí¸ß²¢·¢µÄ3ÖÖ·½°¸
2021-07-12servletµÄÉúÃüÖÜÆÚ¼°servlet³£Ó÷½·¨¡¾JavaÃæÊÔÌâ¡¿
2021-07-12NginxѧϰÊÓÆµ£ºNginxÊÓÆµ½Ì³Ì°Ù¶ÈÔÆÏÂÔØ
2021-07-12µçÉÌÏîÄ¿ÖÐÓ¦ÓöàÏ̵߳ij¡¾°ÓÐÄÄЩ£¿¡¾JavaÃæÊÔÌâ¡¿
2021-07-12
±±¾©Ð£Çø