1. 微信支付项目五:nginx的安装配置和nginx的集群处理
文章目录
1.1. 一些网络知识
- 前端静态页面
一般静态页面的上面引入样式,下面引入框架的js
- 跨域问题与cdn内容分发网络
跨域:浏览器从一个域名的网页请求另一个域名的资源时,域名,端口,协议,任一不同,都是跨域。也就是访问两个不同的域名,该域名下的资源文件比如cookie等,不能相互访问。只有域名,协议,端口相同的时候才能同源。
跨域官方解释:A网页设置的cookie,B网页补能打开,除非这两个网页同源。同源就是上面那三个相同。
- cdn的内容分发
问题:访问不同地区的页面,比如将静态页面和后端处理放到北京的服务器上,广东的小伙伴去访问就会。访问时间特别长
解决:在访问远距离的页面时,可以先访问cdn节点,如果cdn节点没有再访问远距离的服务器。当第二次访问就可以直接从cdn里面获取了。
- 跨域提示:
浏览器控制台跨域提示:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access.
- 跨域解决方案:
第一种:JSONP
第二种:在http响应头配置允许跨域。
1、使用nginx层配置(不常用)
2、或者程序代码中进行处理。(springBoot中自带处理)添加@CrossOrigin注解。
3、添加跨域处理配置文件
注意:接口报错,跨域配置不生效
@Configuration
public class Cors extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")//那个路径允许跨域,当前这是表示所有
.allowedOrigins("*")//允许哪些域名可以跨域,当前这个是所有
.allowedMethods("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH")
.allowCredentials(true).maxAge(3600);//有效期
}
}
1.2. linux安装jdk
- jdk官方地址
- 使用wget下载或者本地上传
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"复制下载地址
事例:
wget --no-check-certificate --no-cookies --header “Cookie: oraclelicense=accept-securebackup-cookie” http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
- 下载好后,解压,并配置环境变量
解压:tar -zxvf jdk-8u171-linux-x64.tar.gz
配置环境变量
vim /etc/profile
#set java environment
JAVA_HOME=/usr/local/soft/jdk1.8.0_171 #注意此处可能要修改。
CLASSPATH= J A V A H O M E / l i b / P A T H = JAVA_HOME/lib/ PATH= JAVAHOME/lib/PATH=PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
- 配置好变量后,设置立即生效
source /etc/profile
- 查看java版本
java -version
- linux图形操作工具
mac:filezilla
windows: winscp
1.3. 网站部署
- 一个http请求的经历
访问域名------》DNS域名解析-----》获取ip-------->访问服务器
1.4. linux服务器上安装Nginx
- 安装Nginx依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
- 进入/usr/local
- 创建一个文件夹 mkdir nginx
- 进行nginx cd nginx 下载tar安装包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
- 解压
tar -xvf nginx-1.13.7.tar.gz
- 执行命令
./configure
make
make install
- Nginx搭建图片服务器
- 查找nginx进程
ps -ef|grep nginx
- 杀死nginx进程
kill -9 nginx对应的进程号
- 重启nginx
./nginx -s reload
1.5. 项目打包以及部署
- 进入项目根目录,有src的那一层
- 打包命令:mvn install -Dmaven.test.skip=true
- 启动应用指定外部文件:nohup java -jar xxx.jar --Dspring.config.location=application.properties &
- 数据库连接ip为内网ip,这样的比较快。
- 部署要点
1、在域名配置中要指定A记录中域名和ip的绑定关系。该绑定关系意味着官网域名。
2、在微信平台要指定一键登录的回调域名。可以添加端口号。例如:www.16webtest.net:8080
3、上面那个域名一定要和第一条中的域名一致。要不然访问不了服务。
4、回调域名要加上http://,也就是当扫码成功后跳转的网站要添加http://
5、微信支付回调域名也是支持带端口的,要在配置文件里面添加对应的端口号。
6、微信支付回调的域名不需要在微信平台上设置,只需要一个域名就可以了。
1.6. 使用Nginx解决前端访问映射问题。
- nginx的目的和tomcat差不多,都是用来让访问前端资源或者图片什么的。属于应有服务器。
- 配置方法
1.7. 高可用之集群部署
- 集群配置图解
- 使用nginx处理进行集群配置处理
1、在nginx.conf里面添加代码
upstream lbs{
server xxx.xxx.xxx.xxx:8082
server 127.0.0.1:8080
}
2、配置接口
location /api/{
proxy_pass http://lbs;
proxy_redirect default;
}
location /user/{
proxy_pass http://lbs;
proxy_redirect default;
}
- 重启nginx
./nginx -s roload