关于防火墙的说明:
防火墙是保障轻量应用服务器实例网络安全的重要手段,所提供的安全防护作用等同于云服务器中的安全组。您可以通过配置防火墙规则,允许或禁止轻量应用服务器实例对公网或私网的访问。
说明: 防火墙只能对实例的入流量进行控制,出流量默认允许所有请求。
配置外网访问:
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="http://ohheziyi.xyz/" appBase="webapps"
unpackWARs="true" autoDeploy="true">
现在在自己的电脑上访问域名:
打开后不是自己的项目。
在后面再加上一个:8080,此时可以打开自己的项目了。
但是依然是只有登陆页面而无法登录,查看控制台:
修改配置:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
//全局配置类,配置跨域请求
@Override
public void addCorsMappings(CorsRegistry registry) {
//预访问的路径 请求来源 方法 允许携带的
registry.addMapping("/**")
.allowedOrigins("*", "null")
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
.allowCredentials(true);
}
原来是.allowedOrigins(“http://localhost:8080”, “null”)修改为.allowedOrigins("*"),然后再次运行,生成jar包
新的jar包复制到tomcat目录下再打开浏览器访问
数据库部署
在服务器上安装phpstudy(感觉好用),然后把自己电脑上数据库生成sql文件,再在服务器上配置相应端口和新建数据库,运行sql文件,即可生成自己电脑上所有的表和数据(用了navicat工具)
数据库中的端口要与java中的配置对应:
关于跨域处理
跨域解决方案
什么是跨域
为了保证浏览器的安全,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。这叫作同源策略,同源策略是浏览器安全的基石。 如果一个请求地址里面的协议、域名和端口号都相同,就属于同源。 举个例子,判断下面URL是否和http://www.a.com/a/a.html同源: http://www.a.com/b/b.html,同源。 http://www.b.com/a/a.html,不同源,域名不相同。 https://www.a.com/b/b.html,不同源,协议不相同。
依据浏览器同源策略,非同源脚本不可操作其他源下面的对象,想要操作其他源下的对象就需要跨域。综上所述,在同源策略的限制下,非同源的网站之间不能发送AJAX请求。如有需要,可通过降域或其他技术实现。
1.CORS 技术
为了解决浏览器跨域问题,W3C提出了跨源资源共享方案,即CORS(Cross-Origin Resource Sharing)。 CORS可以在不破坏即有规则的情况下,通过后端服务器实现CORS接口,从而实现跨域通信。CORS将请求分为两类:简单请求和非简单请求,分别对跨域通信提供了支持。
在CORS出现前,发送HTTP请求时在头信息中不能包含任何自定义字段,且HTTP信息不超过以下几个字段: Accept Accept-Language Content-Language Last-Event-ID Content-Type(仅限于[application/x-www-form-urlencoded、multipart/form-data、text/plain]类型) 一个简单请求的例子: 对于简单请求,CORS的策略是请求时在请求头中增加一个Origin字段,服务器收到请求后,根据该字段判断是否允许该请求访问。 如果允许,就在HTTP头信息中添加Access-Control-Allow-Origin字段,并返回正确的结果
如果不允许,就不在HTTP头信息中添加Access-Control-Allow-Origin字段。 除了上面提到的Access-Control-Allow-Origin,还有几个字段用于描述CORS返回结果: Access-Control-Allow-Credentials:可选,用户是否可以发送、处理cookie。 Access-Control-Expose-Headers:可选,可以让用户拿到的字段。有几个字段无论设置与否都可以拿到的,包括Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。
非简单请求 对于非简单请求的跨源请求,浏览器会在真实请求发出前增加一次OPTION请求,称为预检请求(preflight request)。预检请求将真实请求的信息,包括请求方法、自定义头字段、源信息添加到HTTP头信息字段中,询问服务器是否允许这样的操作。