Facebook开发者社区

标题: FB小游戏开发准备六(Nginx 开启SSL服务及跨域处理) [打印本页]

作者: 破晓    时间: 2018-11-1 17:04
标题: FB小游戏开发准备六(Nginx 开启SSL服务及跨域处理)
使用Let’s Encrypt的免费证书请参看之前帖子


准备工作安装nginx:
第一步 – 添加Nginx存储库要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令:
  1. yum install epel-release
复制代码
第二步 – 安装Nginx
现在Nginx存储库已经安装在您的服务器上,使用以下yum命令安装Nginx :
  1. yum install nginx
复制代码
在对提示回答yes后,Nginx将在服务器上完成安装。

nginx 启动和停止:
  1. systemctl start nginx
  2. systemctl stop nginx
复制代码
如果想在系统启动时启用Nginx。请输入以下命令:
  1. systemctl enable nginx
复制代码

配置SSL服务第一步:进入到  /usr/local/nginx/html

复制一个   crossdomain.xml   过去允许跨域访问
  1. <?xml version="1.0"?>

  2. <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
  3. <cross-domain-policy>
  4.     <site-control permitted-cross-domain-policies="all"/>
  5.     <allow-access-from domain="*"/>
  6.     <allow-http-request-headers-from domain="*" headers="*"/>
  7. </cross-domain-policy>
复制代码
      

第二步:配置SSL
  1. server {
  2.         listen       443 ssl http2 default_server;
  3.         listen       [::]:443 ssl http2 default_server;
  4.         server_name  _;

  5.         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  6.             ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  7.             ssl_session_cache builtin:1000 shared:SSL:10m;
  8.         ssl_certificate "/etc/letsencrypt/live/code2048.net/fullchain.pem";
  9.         ssl_certificate_key "/etc/letsencrypt/live/code2048.net/privkey.pem";
  10.         ssl_session_timeout  10m;
  11.         ssl_prefer_server_ciphers on;
  12.         ssl_stapling on;
  13.         ssl_stapling_verify on;

  14.         # Load configuration files for the default server block.
  15.         include /etc/nginx/default.d/*.conf;

  16.         location /crossdomain.xml {
  17.                 alias /usr/share/nginx/html/crossdomain.xml;
  18.             }

  19.         location / {
  20.                 proxy_pass http://tomcat_game;
  21.                 proxy_set_header Host $host;
  22.                 proxy_set_header X-Real-IP $remote_addr;
  23.                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  24.                 proxy_pass_request_headers              on;  
  25.         }

  26.         error_page 404 /404.html;
  27.             location = /40x.html {
  28.         }

  29.         error_page 500 502 503 504 /50x.html;
  30.             location = /50x.html {
  31.         }
  32.     }
复制代码


此处配置了代理,不需要可以无视
主要内容为:
  1.         listen       443 ssl http2 default_server;
  2.         listen       [::]:443 ssl http2 default_server;
  3.         server_name  _;

  4.         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  5.             ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  6.             ssl_session_cache builtin:1000 shared:SSL:10m;
  7.         ssl_certificate "/etc/letsencrypt/live/code2048.net/fullchain.pem";
  8.         ssl_certificate_key "/etc/letsencrypt/live/code2048.net/privkey.pem";
  9.         ssl_session_timeout  10m;
  10.         ssl_prefer_server_ciphers on;
  11.         ssl_stapling on;
  12.         ssl_stapling_verify on;
复制代码

fullchain.pem   和  privkey.pem   为申请的Let’s Encrypt的免费证书
也可以使用工具 转换成 crt  和 key 文件 转换工具:https://github.com/Neilpang/acme ... -to-apachenginx-etc

启动服务
配置完成后启动服务


来源:http://blog.airmyth.com/450.html





作者: 破晓    时间: 2018-11-1 17:12
Tomcat  跨域处理
创建全局过滤器:

CorssFilter.java

  1. package com.airmyth.filter;

  2. import java.io.IOException;

  3. import javax.servlet.Filter;
  4. import javax.servlet.FilterChain;
  5. import javax.servlet.FilterConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.ServletRequest;
  8. import javax.servlet.ServletResponse;
  9. import javax.servlet.http.HttpServletResponse;

  10. public class CorssFilter implements  Filter {

  11.         @Override
  12.         public void destroy() {
  13.                 // TODO Auto-generated method stub
  14.                
  15.         }

  16.         @Override
  17.         public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  18.                 HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
  19.         httpResponse.addHeader("Access-Control-Allow-Origin", "*");
  20.         httpResponse.setHeader("Access-Control-Allow-Headers", "*");
  21.         httpResponse.setHeader("Access-Control-Allow-Methods", "GET, PUT, DELETE, POST");
  22.         filterChain.doFilter(servletRequest, servletResponse);
  23.         }

  24.         @Override
  25.         public void init(FilterConfig arg0) throws ServletException {
  26.                 // TODO Auto-generated method stub
  27.                
  28.         }

  29. }
复制代码


把这个打成jar包   放到  Tomcat  的  lib 文件夹下,然后修改  conf/web.xml
加入过滤器配置:


  1.   <filter>
  2.       <filter-name>corssFilter</filter-name>
  3.       <filter-class>com.airmyth.filter.CorssFilter</filter-class>
  4.   </filter>
  5.   <filter-mapping>
  6.       <filter-name>corssFilter</filter-name>
  7.       <url-pattern>/*</url-pattern>
  8.   </filter-mapping>
复制代码



然后重启  Tomcat

jar包见附件:

lib.rar (1.21 KB, 下载次数: 1)


作者: saladin    时间: 2018-11-13 15:09
Windows7系统的怎么弄?
作者: 破晓    时间: 2018-11-19 18:08
saladin 发表于 2018-11-13 15:09
Windows7系统的怎么弄?

windows没搞过哦
作者: dhvlkaqdtblhkje    时间: 2018-12-17 13:23
强烈感谢楼主




欢迎光临 Facebook开发者社区 (http://bbs.zcsftek.com/) Powered by Discuz! X3.2