运行 tomcat 在 443 端口
Run tomcat on 443 port
我正在使用 Red Hat Enterprise Linux Server 6.7 (Santiago) 操作系统来访问部署在 8443 端口的应用程序。请建议我如何点击我的应用程序
https://localhost/AppName
本地和
https://HOST_NAME/AppName
全球。
请在 Linux 框中建议必须进行哪些更改。
我对 server.xml 文件
进行了以下更改
< Connector
port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="conf/Certificate/keystore.jks"
keystorePass="<PASSWORD>"
/>
您可以将 tomcat 监听的端口更改为 443,这是标准的 https 端口。
< Connector
port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="conf/Certificate/keystore.jks"
keystorePass="<PASSWORD>"
/>
https://HOST_NAME:8443/AppName 其中 HOST_NAME 是您服务器 server/IP 地址的已发布 DNS 名称。 AppName 将是您访问(通常是您的 servlet 映射)应用程序的路径,如 web.xml 中为您的应用程序定义的那样。
您可以使用nginx 作为反向代理。由于您已经拥有 Tomcat,您所要做的就是安装 Nginx 并配置 SSL 和非 SSL 虚拟主机。您可以通过删除默认虚拟主机文件并在 nginx 的配置目录中的两个不同文件中创建以下内容来执行此操作:
server {
listen 80 default_server;
server_name example.com www.example.com;
location /{
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_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080
}
}
和
server{
listen 443;
server_name example.com;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
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_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8443;
}
}
Nginx 现在会将所有请求代理到 Tomcat。有了 Nginx,您还可以利用它的缓存功能。它非常适合 caching/serving 静态内容。
不要忘记将密钥添加到上面配置中指定的位置。
我正在使用 Red Hat Enterprise Linux Server 6.7 (Santiago) 操作系统来访问部署在 8443 端口的应用程序。请建议我如何点击我的应用程序 https://localhost/AppName 本地和 https://HOST_NAME/AppName 全球。
请在 Linux 框中建议必须进行哪些更改。 我对 server.xml 文件
进行了以下更改< Connector
port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="conf/Certificate/keystore.jks"
keystorePass="<PASSWORD>"
/>
您可以将 tomcat 监听的端口更改为 443,这是标准的 https 端口。
< Connector
port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="conf/Certificate/keystore.jks"
keystorePass="<PASSWORD>"
/>
https://HOST_NAME:8443/AppName 其中 HOST_NAME 是您服务器 server/IP 地址的已发布 DNS 名称。 AppName 将是您访问(通常是您的 servlet 映射)应用程序的路径,如 web.xml 中为您的应用程序定义的那样。
您可以使用nginx 作为反向代理。由于您已经拥有 Tomcat,您所要做的就是安装 Nginx 并配置 SSL 和非 SSL 虚拟主机。您可以通过删除默认虚拟主机文件并在 nginx 的配置目录中的两个不同文件中创建以下内容来执行此操作:
server {
listen 80 default_server;
server_name example.com www.example.com;
location /{
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_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080
}
}
和
server{
listen 443;
server_name example.com;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location / {
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_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8443;
}
}
Nginx 现在会将所有请求代理到 Tomcat。有了 Nginx,您还可以利用它的缓存功能。它非常适合 caching/serving 静态内容。
不要忘记将密钥添加到上面配置中指定的位置。