nginx+tomcat 配置文件

本贴最后更新于 3019 天前,其中的信息可能已经时移世易

nginx.conf

user nginx;
pid /var/run/nginx.pid;

worker_processes 8;
worker_rlimit_nofile 102400;
events {
use epoll;
worker_connections 102400;
}

http {

passenger_root /usr/local/rvm/gems/ruby-1.9.3-p551/gems/passenger-5.0.20;

passenger_ruby /usr/local/rvm/gems/ruby-1.9.3-p551/bin/ruby;

include mime.types; charset utf-8; 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" ' '"$gzip_ratio" $request_time $bytes_sent $request_length';

log_format srcache_log 'remote_user [request" '

'"body_bytes_sent bytes_sent $request_length '

'"[srcache_fetch_status] [srcache_expire]';

set_real_ip_from 10.0.0.0/8; real_ip_header X-Forwarded-For; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; include /etc/nginx/gzip.conf; include /etc/nginx/proxy.conf; server_names_hash_max_size 512; server_names_hash_bucket_size 128; sendfile on; fastcgi_intercept_errors on; keepalive_timeout 650; include /etc/nginx/vhosts/*.conf; include /etc/nginx/vhosts/stock/*.conf; include /etc/nginx/vhosts/cyw/*.conf; include /etc/nginx/vhosts/baye8/*.conf; include /etc/nginx/vhosts/60/*.conf; server { listen 80; server_name localhost; root /usr/share/nginx/html; location / { index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~/\.ht { deny all; } }

include /etc/nginx/vhosts/*.conf;

}

proxy.conf

#!nginx (-)
# proxy.conf
fastcgi_buffers 32 8k;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path /tmp/nginx/temp;
proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=cache_zone:2048M inactive=1d max_size=20g;
proxy_headers_hash_max_size 512000;
proxy_headers_hash_bucket_size 64000;

gzip.conf

gzip on;
# gzip_http_version 1.1;
gzip_disable "MSIE [1-6]\.";
#gzip_disable "Mozilla/4";
gzip_static on;
gzip_comp_level 4;
gzip_proxied any;
gzip_vary on;
gzip_buffers 4 16k;
gzip_min_length 1100;
gzip_types text/plain text/xml text/css application/xml application/xhtml+xml application/rss+xml application/atom_xml application/javascript application/x-javascript;

vhosts.conf

upstream mall-cms.messandbox.com {
	server 127.0.0.1:7791;
}

upstream mall-info.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-my.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-search.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-pay.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-sc.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-open.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-common.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-cs.messandbox.com {
server 127.0.0.1:7791;
}

upstream mall-c.messandbox.com {
server 127.0.0.1:7791;
}

#server {

listen 80;

server_name www.ecec.com;

#access_log /data/logs/b2c2c/access.log main;

location / {

root /data/zte/www/html/ecec;

index index/index.html index/index.htm;

}

#}

server {
listen 80;
server_name mall-ad.messandbox.com;

proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/cms/systemCode/publish/www/advert; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }

}

server {
listen 80;
server_name mall-so.messandbox.com;
charset utf-8;

#access_log /data/logs/b2c2c/access_b_so.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/static/ecoeco; index index.html index.htm; }

}

server {
listen 80;
server_name mall-se.messandbox.com;

#access_log /data/logs/b2c2c/access_b_se.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/static/ecec; index index.html index.htm; }

}

server {
listen 80;
server_name mall-img.messandbox.com;

#access_log /data/logs/b2c2c/access_b_img.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/img; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }

}

server {
listen 80;
server_name mall-oimg.messandbox.com;

#access_log /data/logs/b2c2c/access_b_img.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/img-bak; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }

}

server {
listen 80;
server_name mall-my.messandbox.com;

#access_log /data/logs/b2c2c/access_b_my.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-my.messandbox.com; }

}

server {
listen 80;
server_name mall-pay.messandbox.com;

#access_log /data/logs/b2c2c/access_b_pay.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-pay.messandbox.com; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }

}

server {
listen 80;
server_name mall-search.messandbox.com;

#access_log /data/logs/b2c2c/access_b_search.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-search.messandbox.com; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }

}

server {
listen 80;
server_name mall-info.messandbox.com;

#access_log /data/logs/b2c2c/access_b_info.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-info.messandbox.com; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }

}

server {
listen 80;
server_name mall-sc.messandbox.com;

#access_log /data/logs/b2c2c/access_b_sc.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-sc.messandbox.com; }

}

server {
listen 80;
server_name mall-open.messandbox.com;

#access_log /data/logs/b2c2c/access_b_open.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-open.messandbox.com; } location ~/sindex { root /data/zte/www/html/b2c2c; index sindex.html; }

}

server {
listen 80;
server_name mall-cms.messandbox.com;

#access_log /data/logs/b2c2c/access_b_cms.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-cms.messandbox.com; }

}

server {
listen 80;
server_name mall-common.messandbox.com;

#access_log /data/logs/b2c2c/access_b_common.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-common.messandbox.com; }

}

server {
listen 80;
server_name mall-cs.messandbox.com;

#access_log /data/logs/b2c2c/access_b_cs.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-cs.messandbox.com; }

}

server {
listen 80;
server_name mall-www.messandbox.com;
#access_log /data/logs/b2c2c/access_b_mall.log main;
error_page 404 = /404.html;
location / {
root /data/zte/www/html/b2c2c;
index sindex/sindex.html sindex/sindex.htm;
}
location /* {
error_page 404 = /404.html;
}
}

server {
listen 80;
server_name mall-s.messandbox.com;

#access_log /data/logs/b2c2c/access_b_mall.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/static/b2c2c; index index.html index.htm; }

}

server {
listen 80;
server_name mall-c.messandbox.com;

#access_log /data/logs/b2c2c/access_b_mall.log main; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://mall-c.messandbox.com; }

}
server {
listen 80;
server_name mall-download.messandbox.com;

proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { root /data/zte/www/downloads; index index.html index.htm; }

}

tomcat_catalina.sh

JAVA_OPTS='-server -Xms2048m -Xmx2048m -Xss256k -XX:MaxNewSize=256m -XX:MaxPermSize=256m'

tomcat_app_server.xml

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
        maxThreads="3000" minSpareThreads="500" maxIdleTime="60000"/>

<Connector executor="tomcatThreadPool" port="8091" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
acceptCount="1000"
enableLookups="false"
redirectPort="8443" URIEncoding="UTF-8" />

<Host name="mall-sc.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-cookie-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-cookie-web" path="/" reloadable="true"/>
</Host>
<Host name="mall-my.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-member-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-member-web" path="" reloadable="true"/>
</Host>
<Host name="mall-info.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-info-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-info-web" path="" reloadable="true"/>
</Host>
<Host name="mall-open.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-open-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-open-web" path="" reloadable="true"/>
</Host>
<Host name="mall-pay.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-pay-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-pay-web" path="" reloadable="true"/>
</Host>
<Host name="mall-cms.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-cms-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-cms-web" path="" reloadable="true"/>
</Host>
<Host name="mall-common.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-common-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-common-web" path="" reloadable="true"/>
</Host>
<Host name="mall-cs.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-community-service-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-community-service-web" path="" reloadable="true"/>
</Host>
<Host name="mall-c.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-cookie-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-cookie-web" path="" reloadable="true"/>
</Host>
<Host name="mall-search.messandbox.com" appBase="/data/tomcat-m-web/webapps/cm-search-web" unpackWARS="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/data/tomcat-m-web/webapps/cm-search-web" path="" reloadable="true"/>
</Host>

tomcat_web_server.xml

JAVA_OPTS='-server -Xms512m -Xmx1536m -Xss512k -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Djava.awt.headless=true'
&lt;Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="3000" minSpareThreads="500"/&gt; &lt;Connector executor="tomcatThreadPool" port="7891" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" maxThreads="3000" minSpareThreads="200" maxSpareThreads="5000" acceptCount="5000" enableLookups="false" redirectPort="8443" URIEncoding="UTF-8"/&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-cms-app" path="/cm-cms-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-common-app" path="/cm-common-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-community-service-app" path="/cm-sommunity-service-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-info-app" path="/cm-info-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-member-app" path="/cm-member-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-open-app" path="/cm-open-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-pay-app" path="/cm-pay-app" debug="0" reloadable="true" /&gt; &lt;Context docBase="/data/tomcat-m-app/webapps/cm-search-app" path="/cm-search-app" debug="0" reloadable="true" /&gt;

 

 

 

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 161 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 6 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    952 引用 • 944 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    22 引用 • 214 回帖
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 3 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 6 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 760 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 626 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 318 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 85 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 503 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 75 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖
  • 996
    13 引用 • 200 回帖 • 2 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖 • 2 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 704 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖 • 1 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 368 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖 • 1 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 81 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 3 关注
  • CodeMirror
    2 引用 • 17 回帖 • 161 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    99 引用 • 367 回帖
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 642 关注