网站未备案临时解决方案总结

本文分享了两个应急方案,用于处理未备案网站面临服务器被封的情况。方案一尝试通过DNS CNAME指向已备案二级域名解决,但因机房限制未能实施。方案二采用国外VPS进行301跳转或反向代理,确保网站正常访问,同时避免备案问题。

原文:http://blog.51cto.com/lxshopping/1591090

前段时间机房突然通知公司几个网站都没备案,在16点之前不关闭网站将直接封服务器ip,一问起来,是以前备案都放在武汉机房,9月份武汉机房撤掉了,结果备案信息都被干掉了,这都是前人留下的抗,没办法,拿方案出来吧,下面有二套方案:

方案一:做dns cname 到已备案的二级域名

方案二:转移到其他机房做301跳转或者代理,让原域名和已备案的二级域名都可以访问网站,双保险

 

首先施行方案一,简单说说思路,其实就是将未备案的域名cname到已备案的二级域名上面,做法很简单,只需要修改dns指向即可,如图:

wKiom1SRJe_CaniXAAB4WrojRTc216.jpg

例如:

未备案的域名:test.com

已备案的域名:abc.com

更改DNS记录,选取yeyou.abc.com作为临时域名,在test.com域名里面做如下更改:

test.com cname yeyou.abc.com

在abc.com域名需要添加yeyou.abc.com这个二级域名,并将这个域名指向到原服务器。

按照这个思路做好了,理论上现在未备案域名test.com的根指向的是yeyou.abc.com,这个是备案了的,

这样访问www.test.com会自动的去访问yeyou.abc.com这个二级域名对应的服务器,按道理来说,这样可以正常访问www.test.com,也不存在备案问题了,因为yeyou.abc.com这个备案了的,也就是在dns这一层就做了跳转,但是机房太二了,非得我这个test.com域名不能指向他们的服务器,上面的yeyou.abc.com指向的仍然是他们的服务器,由于代码不可能在半天之类全部修改完,网站有支付功能,所以接口、回调链接很多,机房要求那边ping test.com指向的ip不是他们的服务器,只能用方案二了。

最好找一台国外的vps,只要对国内访问速度可以就行了,然后做301跳转,如下图:

wKioL1SRKKrj_7tEAACxVXt4Qng701.jpg

将test.com A记录指向到国外的vps,yeyou.abc.com A记录指向到原服务器,在vps上面做nginx 301跳转到yeyou.abc.com这个域名,最终用户访问的还是原服务器,这样可以避免test.com未备案而被封的问题,程序也不需要做很大的改动,vps nginx配置如下:

<span style="color:#333333"><span style="color:#333333"><span style="color:black"><code class="language-bash">server
<span style="color:#999999">{</span>
listen 80<span style="color:#999999">;</span>
server_name test.com www.test.com api.test.com cps.test.com <span style="color:#999999">;</span>
 
<span style="color:#0077aa">if</span> <span style="color:#999999">(</span><span style="color:#ee9900">$host</span> <span style="color:#9a6e3a">=</span> <span style="color:#669900">'www.test.com'</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
        rewrite ^/<span style="color:#999999">(</span>.*<span style="color:#999999">)</span>$ http://yeyou.abc.com/<span style="color:#ee9900">$1</span> permanent<span style="color:#999999">;</span>

<span style="color:#999999">}</span>

<span style="color:#0077aa">if</span> <span style="color:#999999">(</span><span style="color:#ee9900">$host</span> <span style="color:#9a6e3a">=</span> <span style="color:#669900">'api.test.com'</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
        rewrite ^/<span style="color:#999999">(</span>.*<span style="color:#999999">)</span>$ http://api.yeyou.abc.com/<span style="color:#ee9900">$1</span> permanent<span style="color:#999999">;</span>

<span style="color:#999999">}</span>

<span style="color:#0077aa">if</span> <span style="color:#999999">(</span><span style="color:#ee9900">$host</span> <span style="color:#9a6e3a">=</span> <span style="color:#669900">'cps.test.com'</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
        rewrite ^/<span style="color:#999999">(</span>.*<span style="color:#999999">)</span>$ http://cps.yeyou.abc.com/<span style="color:#ee9900">$1</span> permanent<span style="color:#999999">;</span>

<span style="color:#999999">}</span>

<span style="color:#999999">}</span></code></span></span></span>

原nginx的配置就很简单了,只需要将server_name www.test.com更换为yeyou.abc.com;即可,其他的都不用更改。用户访问的过程,如下图 :

wKiom1SRK8aTDleZAACbYDuyvGQ288.jpg

国外vps只起一个中间过渡,可以在nginx日志里面看到状态码是301,将一部分老用户访问test.com转移到新域名yeyou.265g.com上。

但是有个问题,所有访问www.test.com的用户会被自动跳转到yeyou.abc.com,这样感觉很不爽,最后修改成了反向代理,用户访问域名不变,仍然会跳转到原服务器,具体做法:

vps配置如下:

<span style="color:#333333"><span style="color:#333333"><span style="color:black"><code class="language-bash">server
<span style="color:#999999">{</span>
listen 80<span style="color:#999999">;</span>
server_name www.test.com<span style="color:#999999">;</span>
access_log  logs/www.test.access.log  main<span style="color:#999999">;</span>
        ssi on<span style="color:#999999">;</span>
        proxy_redirect     off<span style="color:#999999">;</span>
        proxy_set_header   Host             <span style="color:#ee9900">$host</span><span style="color:#999999">;</span>
        proxy_set_header   X-Real-IP        <span style="color:#ee9900">$remote_addr</span><span style="color:#999999">;</span>
        proxy_set_header   X-Forwarded-For  <span style="color:#ee9900">$proxy_add_x_forwarded_for</span><span style="color:#999999">;</span>
        proxy_next_upstream error <span style="color:#dd4a68">timeout</span> invalid_header http_500 http_502 http_503 http_504<span style="color:#999999">;</span>
        proxy_max_temp_file_size 0<span style="color:#999999">;</span>
        proxy_connect_timeout      90<span style="color:#999999">;</span>
        proxy_send_timeout         90<span style="color:#999999">;</span>
        proxy_read_timeout         90<span style="color:#999999">;</span>
        proxy_buffer_size          4k<span style="color:#999999">;</span>
        proxy_buffers              4 32k<span style="color:#999999">;</span>
        proxy_busy_buffers_size    64k<span style="color:#999999">;</span>
        proxy_temp_file_write_size 64k<span style="color:#999999">;</span>
location  ^~ / <span style="color:#999999">{</span>
<span style="color:slategray">#       proxy_cache abc_cache;</span>
        proxy_set_header Host yeyou.abc.com<span style="color:#999999">;</span>   <span style="color:slategray">#注意要指定跳转的域名,否则会无法跳转,出现502</span>
        rewrite ^<span style="color:#999999">(</span>.*<span style="color:#999999">)</span>$ /<span style="color:#ee9900">$1</span> <span style="color:#0077aa">break</span><span style="color:#999999">;</span>
        proxy_pass http://yeyou.abc.com<span style="color:#999999">;</span> <span style="color:slategray">#本地服务器要能解析这个域名 </span>
<span style="color:#999999">}</span>
<span style="color:#999999">}</span></code></span></span></span>

原服务器nginx配置更上面一样,只需要将server_name 指向yeyou.abc.com即可,这样用户访问的过程,如下图:

wKiom1SRLjezCgHhAACYfeN3HT0098.jpg

可以在nginx日志里面看到状态码是200,当用户去访问www.test.com,vps会自动将test.com转换成yeyou.abc.com来提供用户访问,这样对用户的体验来说是很好的,在浏览器中不会跳转到yeyou.abc.com,用户还是用test.com去访问网站,对用户来说是透明的。

 

遇到的问题:

常用的nginx反向代理与上面反向代理的区别?

常用的nginx反向代理配置:

<span style="color:#333333"><span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:slategray">## Basic reverse proxy server ##</span>
<span style="color:slategray">## Apache backend for www.quancha.cn ##</span>
upstream apachephp  <span style="color:#999999">{</span>
    server ip:8080<span style="color:#999999">;</span> <span style="color:slategray">#Apache</span>
<span style="color:#999999">}</span>
<span style="color:slategray">## Start www.quancha.cn ##</span>
server <span style="color:#999999">{</span>
    listen 80<span style="color:#999999">;</span>
    server_name  www.quancha.cn<span style="color:#999999">;</span>
    access_log  logs/quancha.access.log  main<span style="color:#999999">;</span>
    error_log  logs/quancha.error.log<span style="color:#999999">;</span>
    root   html<span style="color:#999999">;</span>
    index  index.html index.htm index.php<span style="color:#999999">;</span>
    <span style="color:slategray">## send request back to apache ##</span>
    location / <span style="color:#999999">{</span>
        proxy_pass  http://apachephp<span style="color:#999999">;</span>
        <span style="color:slategray">#Proxy Settings</span>
        proxy_redirect     off<span style="color:#999999">;</span>
        proxy_set_header   Host             <span style="color:#ee9900">$host</span><span style="color:#999999">;</span>
        proxy_set_header   X-Real-IP        <span style="color:#ee9900">$remote_addr</span><span style="color:#999999">;</span>
        proxy_set_header   X-Forwarded-For  <span style="color:#ee9900">$proxy_add_x_forwarded_for</span><span style="color:#999999">;</span>
        proxy_next_upstream error <span style="color:#dd4a68">timeout</span> invalid_header http_500 http_502 http_503 http_504<span style="color:#999999">;</span>
        proxy_max_temp_file_size 0<span style="color:#999999">;</span>
        proxy_connect_timeout      90<span style="color:#999999">;</span>
        proxy_send_timeout         90<span style="color:#999999">;</span>
        proxy_read_timeout         90<span style="color:#999999">;</span>
        proxy_buffer_size          4k<span style="color:#999999">;</span>
        proxy_buffers              4 32k<span style="color:#999999">;</span>
        proxy_busy_buffers_size    64k<span style="color:#999999">;</span>
        proxy_temp_file_write_size 64k<span style="color:#999999">;</span>
   <span style="color:#999999">}</span>
<span style="color:#999999">}</span></code></span></span></span>

都是指向后端ip+端口的形式。

上面nginx跳转URL不变,以域名的形式进行代理。

注意:需要代理服务器能够解析要代理的域名。

 

总结:目前在国内,网站如果没有备案想上线的话,也只能这么做了,写下来留着以后参考用。

 

 

xnil

1楼  2014-12-18 12:58:051

方案一:就不要拿出来误人子弟了,自己相当然的以为一条cname就可以解决,还扯什么机房太二

  • 作者lxshopping:@xnil 

    兄台说的对,当时只是没办法临时想出来的,结果是行不通,只是留做自己以后参考。

    2014-12-19 09:27:03

    回复

itwork

2楼  2014-12-18 18:54:521

方案一,行不通,备案是对域名,不对IP的|@|方案二,可行,是没办法中的办法了

  • 作者lxshopping:@itwork 

    备案是对域名,所以才想到把这个没备案的域名cname到已经备案的二级域名上,然后再将这个二级域名指向原服务器,用户访问的应该是这个已备案的二级域名,只是机房要求未备案的域名不能指向他们的服务器,所以才用方案二临时解决的。

    2014-12-19 09:33:14

    回复

ylky_2000

3楼  2014-12-30 08:50:35

方案二有风险,封ip啊,解封ip要很长时间。预计1-3个月,看人品。|@|没有备案就赶紧关了域名映射关系吧。|@|对方提前通知你们了已经很看得起了。|@||@|

cmk577

4楼  2018-05-09 13:08:45

大佬,有没有详细的方案,上面看不太懂,公司的域名要重新备案,网站不停

 

<think>首先,用户的问题是关于开发一个提供写真摄影服务展示和下载的网站。用户说:"我想创建或了解提供写真照片服务的网站 请问如何开发一个提供写真摄影服务展示和下载的网站"。这涉及到网站开发,所以我需要基于系统级指令来构建回答。 关键系统级指令: - 所有行内数学表达式用$...$格式。 - 独立公式用$$...$$并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 用户可见层: - 回答结构清晰,帮助用户逐步解决问题。 - 尽量保证回答真实可靠。 参考站内引用: - 引用[1]: 关于基于SpringBoot的摄影服务和分享网站系统,提到市场规模、问题和研究意义。 - 引用[2]: 关于基于SpringBoot的摄影作品分享网站设计与实现,包括源码、定制和讲解。 用户的需求是开发一个提供写真摄影服务展示和下载的网站。所以,我应该基于这些引用来构建一个技术方案。 步骤: 1. **理解需求**:用户要开发一个网站,用于展示写真摄影服务(如作品展示)和下载功能(可能允许用户下载照片)。 2. **技术框架**:引用中提到SpringBoot,所以建议使用SpringBoot作为后端框架。 3. **核心功能**: - 展示写真摄影作品。 - 下载功能:用户可能下载照片(需考虑版权问题)。 - 其他可能功能:预约服务、用户分享、评论等(基于引用)。 4. **逐步解决问题**: - 第一步:规划网站结构和功能。 - 第二步:选择技术栈。 - 第三步:实现核心功能。 - 第四步:测试和部署。 5. **添加引用**:在回答中自然地引用提供的引用内容。例如,提到市场规模或问题,添加[^1]。 6. **生成相关问题**:在回答结束后,添加"§§相关问题§§"部分。 回答结构: - 开头:确认需求。 - 主体:逐步解释开发过程。 - 结尾:总结和生成相关问题。 确保LaTeX: - 可能没有数学表达式,但如果有,用$...$或$$...$$。例如,如果提到算法,但这里可能不需要。 - 在本问题中,可能不需要数学,所以保持文本。 中文回答: - 整个回答用中文。 生成相关问题: - 例如: 1. 如何设计写真摄影网站的数据库? 2. 如何实现照片下载功能的安全性? 3. 网站如何集成支付功能? 基于用户需求。 引用使用: - 引用[1]提到市场规模和问题,如"预约效率低、证件照标准化不足、作品分享渠道单一",所以可以融入回答。 - 引用[2]提到源码和定制,可以建议参考。 完整回答大纲: 1. **引言**:基于引用,介绍背景和需求。 2. **开发步骤**: - 需求分析:定义功能,如作品展示、下载、用户管理。 - 技术选择:后端用SpringBoot,前端用React或Vue.js,数据库用MySQL或MongoDB。 - 核心功能实现: - 作品展示:使用图片库,支持分类和搜索。 - 下载功能:设置下载权限,可能使用CDN。 - 用户系统:注册、登录、评论。 - 部署:使用云服务如AWS或阿里云。 3. **引用整合**:自然地添加引用标识。 4. **相关问题**:列出3-5个相关问题。 最终输出: - 回答部分。 - §§相关问题§§部分。</think>### 开发一个提供写真摄影服务展示和下载的网站 您好!我将帮助您逐步了解如何开发一个提供写真摄影服务展示和下载的网站。写真摄影网站的核心功能包括:作品展示(如写真照片画廊)、下载服务(允许用户下载高质量照片)、以及可能的附加功能如预约系统或用户分享社区。基于您提供的引用信息,中国摄影服务市场规模庞大(2023年突破3000亿元),其中证件照和写真占比达45%,但行业存在“预约效率低、作品分享渠道单一”等问题[^1]。因此,开发一个高效、用户友好的网站,能提升服务质量和用户体验。下面我将以SpringBoot框架为基础(因为引用中提到它是常用技术),分步骤解释开发过程,确保方案真实可靠。整个过程包括需求分析、技术选型、核心功能实现、测试部署,并参考了行业最佳实践。 #### 1. **需求分析与规划** - **核心功能定义**: - **展示功能**:创建写真照片画廊,支持分类(如风格、主题)、搜索和预览。用户可浏览高清写真作品。 - **下载功能**:允许注册用户下载照片(支持多种格式如JPEG或PNG),需考虑版权保护(如添加水印或限制下载次数)。 - **附加功能**:基于引用中的问题,添加预约系统(解决“预约效率低”)、用户评论和分享模块(解决“分享渠道单一”),以及后台管理(用于摄影师上传作品)。 - **用户角色**:普通用户(浏览、下载)、摄影师(上传、管理作品)、管理员(审核内容)。 - **市场需求**:参考引用[1],2023年写真摄影市场规模巨大,但线上化不足,因此网站应注重移动端适配和快速加载。目标用户包括个人客户和商业机构。 - **规划工具**:使用UML工具(如Lucidchart)绘制网站结构图,定义数据库模型(例如,用户表、作品表、下载记录表)。 #### 2. **技术选型与架构设计** - **后端框架**:推荐使用**SpringBoot**(基于Java),因为它简化了开发,支持RESTful API,易于集成安全模块(如Spring Security)。引用[2]提到SpringBoot是摄影网站的主流选择,能处理高并发请求。 - 关键组件:Spring MVC(用于控制器)、Spring Data JPA(数据库交互)、Spring Boot Starter Web(构建Web应用)。 - 示例代码片段(独立公式格式): ```java // 作品实体类,定义写真照片属性 @Entity public class PhotoWork { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; // 作品标题 private String category; // 分类,如"写真" private String imageUrl; // 图片存储路径 // 其他属性如下载次数、上传时间 } ``` - **前端技术**:使用**React.js**或**Vue.js**(基于JavaScript),构建响应式界面。集成Bootstrap或Ant Design提升UI/UX。 - 功能实现:通过Axios调用后端API,实现动态画廊和下载按钮。 - **数据库**:选择**MySQL**(关系型)或**MongoDB**(非关系型),存储用户数据、作品信息和下载记录。例如,设计表结构: - `users`表:用户ID、姓名、角色、下载权限。 - `photos`表:作品ID、标题、分类、存储路径、下载链接。 - **存储与CDN**:使用云存储服务(如阿里云OSS或AWS S3)存放高清照片,结合CDN加速加载,解决引用中提到的“作品分享渠道单一”问题[^1]。 - **安全考虑**:添加HTTPS、用户认证(OAuth2.0)、以及下载权限控制(如仅限注册用户下载)。 #### 3. **核心功能实现步骤** - **作品展示模块**: - 实现REST API(SpringBoot控制器),例如`/api/photos`获取所有写真作品。 - 前端使用React组件渲染画廊:支持分页、过滤(按风格或摄影师)。 - 优化:压缩图片(使用工具如ImageMagick),确保加载速度。 - **下载功能模块**: - 后端逻辑:创建下载接口(如`/api/download/{photoId}`),检查用户权限后生成临时下载链接(避免盗链)。 - 前端实现:添加下载按钮,触发API调用。示例代码(独立公式格式): ```java // SpringBoot下载控制器 @GetMapping("/download/{id}") public ResponseEntity<Resource> downloadPhoto(@PathVariable Long id) { PhotoWork photo = photoService.findById(id); // 权限检查:确保用户已登录 if (userService.isAuthenticated()) { Resource file = storageService.loadAsResource(photo.getImageUrl()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"") .body(file); } else { throw new AccessDeniedException("未授权下载"); } } ``` - 版权保护:在下载时自动添加水印(使用Java库如OpenCV),或设置下载次数限制。 - **附加功能集成**: - **预约系统**:添加日历组件,允许用户在线预约写真拍摄服务。引用[1]强调这能解决“预约效率低”问题[^1]。 - **分享社区**:实现用户评论和社交分享(集成微信或微博SDK),促进作品传播。 - **后台管理**:使用Spring Boot Admin,让摄影师上传作品、管理下载统计。 - **开发工具**:IDE用IntelliJ IDEA,版本控制用Git,测试用JUnit和Postman。 #### 4. **测试与部署** - **测试阶段**: - 单元测试:覆盖所有API(如作品展示和下载功能)。 - 性能测试:使用JMeter模拟高并发,确保网站能处理引用中提到的市场规模需求(如3000亿元市场下的用户流量)[^1]。 - 安全测试:扫描漏洞(如OWASP ZAP),防止数据泄露。 - **部署上线**: - 云平台:选择阿里云或AWS,部署SpringBoot应用(用Docker容器化)。 - 域名与备案:注册域名(如“your-photo-site.com”),完成ICP备案。 - 监控与维护:集成Prometheus监控,定期更新内容。 - **成本估算**:初始开发约2-3个月(小型团队),云服务月费从几百元起(取决于流量)。引用[2]提到“全程售后陪伴”,建议参考类似项目源码或定制服务来加速开发[^2]。 #### 总结 开发一个写真摄影服务网站,需聚焦展示和下载功能,同时解决行业痛点如预约效率和分享渠道。使用SpringBoot作为后端核心,结合现代前端技术,能构建高效、可扩展的系统。整个过程从需求分析到部署,约需3-6个月,但能显著提升用户体验和市场竞争力。如果您有具体技术细节疑问,可参考引用[2]中的源码或联系开发者获取演示视频[^2]。下一步,您可以从最小可行产品(MVP)开始,优先实现核心功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值