微信支付项目五:nginx的安装配置和nginx的集群处理

1. 微信支付项目五:nginx的安装配置和nginx的集群处理

1.1. 一些网络知识
  1. 前端静态页面

一般静态页面的上面引入样式,下面引入框架的js

  1. 跨域问题与cdn内容分发网络

跨域:浏览器从一个域名的网页请求另一个域名的资源时,域名,端口,协议,任一不同,都是跨域。也就是访问两个不同的域名,该域名下的资源文件比如cookie等,不能相互访问。只有域名,协议,端口相同的时候才能同源。

跨域官方解释:A网页设置的cookie,B网页补能打开,除非这两个网页同源。同源就是上面那三个相同。

  1. cdn的内容分发

问题:访问不同地区的页面,比如将静态页面和后端处理放到北京的服务器上,广东的小伙伴去访问就会。访问时间特别长

解决:在访问远距离的页面时,可以先访问cdn节点,如果cdn节点没有再访问远距离的服务器。当第二次访问就可以直接从cdn里面获取了。

cnd功能

  1. 跨域提示:

浏览器控制台跨域提示:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access.

  1. 跨域解决方案:

第一种: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
  1. jdk官方地址

jdk官方地址

  1. 使用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

  1. 下载好后,解压,并配置环境变量

解压: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

  1. 配置好变量后,设置立即生效

source /etc/profile

  1. 查看java版本

java -version

  1. linux图形操作工具

mac:filezilla

windows: winscp

1.3. 网站部署
  1. 一个http请求的经历

访问域名------》DNS域名解析-----》获取ip-------->访问服务器

1.4. linux服务器上安装Nginx
  1. 安装Nginx依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

  1. 进入/usr/local
  2. 创建一个文件夹 mkdir nginx
  3. 进行nginx cd nginx 下载tar安装包

wget http://nginx.org/download/nginx-1.13.7.tar.gz

  1. 解压

tar -xvf nginx-1.13.7.tar.gz

  1. 执行命令

./configure

make

make install

  1. Nginx搭建图片服务器

参考链接1

参考链接2

  1. 查找nginx进程

ps -ef|grep nginx

  1. 杀死nginx进程

kill -9 nginx对应的进程号

  1. 重启nginx

./nginx -s reload

1.5. 项目打包以及部署
  1. 进入项目根目录,有src的那一层
  2. 打包命令:mvn install -Dmaven.test.skip=true
  3. 启动应用指定外部文件:nohup java -jar xxx.jar --Dspring.config.location=application.properties &
  4. 数据库连接ip为内网ip,这样的比较快。
  5. 部署要点

1、在域名配置中要指定A记录中域名和ip的绑定关系。该绑定关系意味着官网域名。

2、在微信平台要指定一键登录的回调域名。可以添加端口号。例如:www.16webtest.net:8080

3、上面那个域名一定要和第一条中的域名一致。要不然访问不了服务。

4、回调域名要加上http://,也就是当扫码成功后跳转的网站要添加http://

5、微信支付回调域名也是支持带端口的,要在配置文件里面添加对应的端口号。

6、微信支付回调的域名不需要在微信平台上设置,只需要一个域名就可以了。

1.6. 使用Nginx解决前端访问映射问题。
  1. nginx的目的和tomcat差不多,都是用来让访问前端资源或者图片什么的。属于应有服务器。
  2. 配置方法

nginx的映射问题

1.7. 高可用之集群部署
  1. 集群配置图解

集群配置图解

  1. 使用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;

}

  1. 重启nginx

./nginx -s roload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值