阿里云***(java应用)
阿里云***(FQ)实战
前言
因为公司涉及国外业务,依赖于google的map服务,生产环境我们使用的是亚马逊服务器,所以访问google地图没问题,但是国内的开发、测试环境,使用的是阿里云,想访问谷歌地图,就歇菜了,因此有了下面的折腾。
做之前我们先捋一捋思路,平时我的mac上都是时刻保持***的状态,但是到了服务版Linux,木有软件可用,需要采用shadowsocks+privoxy配合的方式。shadowsocks链接socket代理服务器,privoxy将socket代理转为http代理。
部署shadowsocks
A. 更新一遍源
# 以Centos为例, Ubuntu等其他系统相应的更改命令yum为apt-get即可
sudo yum update
B. 安装python-pip
# 因为后面安装的shadowsocks是基于Python的,所以需要先安装Python源
sudo yum install python-pip
C. 安装shadowsocks
# 基于Python安装shadowsocks,这里有一点需要说明,shadowsocks是不区分客户端、服务端的,都是一个包,只是用过不同的启动方式来区分是客户端还是服务端
sudo pip install shadowsocks
D. 配置shadowsocks
# shadowsocks客户端的启动方式有两种,第一种方式是指定配置文件启动的方式,第二种是将配置作为启动参数启动。这里我们选择第一种方式,更方便快捷。
sudo vi /etc/shadowsocks.json
# 写入下面的内容,汉字部分,自行替换,注释可以删掉
# 通常只需要`地址``端口``密码``加密方式`
{
"server":"代理服务器ip", // 代理服务器的访问地址
"server_port":代理服务器端口, // 代理服务器的访问端口
"password":"代理服务器访问密码", // 代理服务器的访问密码
"method":"aes-256-cfb", // 代理服务器访问密码加密方式,大部分默认的都是aes-256-cfb
"local_address":"127.0.0.1", // 本地socket代理访问地址,这里是设置其他应用***的关键
"local_port":1080, // 本地socket代理访问端口,这里是设置其他应用***的关键
"timeout":600
}
E. 启动shadowsocks
# 该步骤,部分机器可能会出错,出错了不要懵逼,属于Python版本兼容的问题,根据错误信息百度自行解决即可
sudo sslocal -c /etc/shadowsocks.json -d start
# 如果没有解决,那么可以使用下面的命令启动,效果一样
nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
# 想增加开启启动的童鞋,自行百度
> http://www.baidu.com
部署privoxy
前面讲到了,shadowsocks的本地代理只是开放了socket代理方式,对于服务器的使用HTTP方式请求的软件,无法直接使用,需要有一个软件来把http的代理需求转成socket的方式,让shadowsocks去代理,不管听没听懂,接下来如果你想让curl、wget等可以FQ,想让java程序中的http请求可以FQ,那么你需要安装一个privoxy
A. 安装privoxy
# 直接yum安装,Ubuntu等同理apt-get
sudo yum install privoxy
B. 配置privoxy
# 打开privoxy配置文件,更改配置项
sudo vi /etc/privoxy/config
打开后,privoxy的配置文件巨长,其中分章节,耐心往下翻按照步骤,找到对应的章节,进行更改
4.1. listen-address
章节
在该章节下找配置:listen-address 127.0.0.1:8118
(8118就是http代理端口),该配置应该位于4.1章节末尾处,如果在4.1章节中找不到该配置,或者该配置被注释了,那么就添加上或者解开注释,通常是默认开启的。
5.2. forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t
章节在该章节下找配置:
forward-socks5t / 127.0.0.1:9050 .
(注意最后面的.
很重要,不要误删了),该配置默认是关闭的,首先要做的是解除#注释,然后修改9050
端口为shadowsocks的本地代理端口1080
。
C. 启动privoxy
# Centos启动
sudo systemctl restart privoxy
# Ubuntu启动
sudo /etc/init.d/privoxy restart
# Centos下尝试上述的启动方式失败,没查到具体原因,改为如下的启动方式
sudo privoxy /etc/privoxy/config
系统代理设置
如果想让curl、wget的命令可以FQ,那么需要配置这一步,如果不需要,请直接略过
# 打开配置文件
sudo vi /etc/profile
# 文件末尾添加如下信息
export http_proxy="127.0.0.1:8118"
export https_proxy="127.0.0.1:8118"
export ftp_proxy="127.0.0.1:8118"
# 刷新配置文件
source /etc/profile
Java 程序代理设置
以spring-boot应用为例,直接上代码
添加配置
# application.yml中添加自定义配置
google:
proxy:
host: 127.0.0.1
port: 8118
添加配置类,不添加yml中的配置的话,该配置类是不起作用的,具体百度“@ConditionalOnProperty”注解
/**
* 创建googel的代理配置类,读取配置文件,然后设置系统变量
*/
@Slf4j
@Data
@Component
@ConfigurationProperties(prefix = "google.proxy")
@ConditionalOnProperty(prefix = "google.proxy", name = {"host", "port"})
public class GoogleProxyConfig {
private String host;
private String port;
@PostConstruct
public void init() {
log.info("初始化google的代理服务");
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxyPort", port);
System.setProperty("https.proxyHost", host);
System.setProperty("https.proxyPort", port);
}
}
阿里云***(java应用)的更多相关文章
- 使用阿里云Java SDK 实现 DDNS
本代码的实现前提: 1.拥有阿里云域名,且获取了Access Key 及 Access Secret 2.能获取外网IP的页面地址(注意:ip138.com的实际包含ip地址为http://2018. ...
- 从0开始搭建一个阿里云java部署环境
一.购买服务器 https://www.aliyun.com/daily-act/ecs/activity_selection?spm=5176.8112568.738194.8.674c9ed53Y ...
- 阿里云Java镜像:基本配置和总体说明
本文中的内容,来自阿里云镜像系统自带的说明. 下次不想用镜像了,感觉也没有节省多少工作量. 一.软件 1.nginx /usr/local/nginx 2.tomcat-7 /var/tomcat/ ...
- 阿里云SDK手册之java SDK
进行阿里云sdk开发的前提是已经购买阿里云的相关服务才能调用阿里的相关接口进行开发.最近公司在做云管控的项目,于是进行下摘录总结. 一. 环境准备 阿里云针对不同的开发语言提供不同的sdk,由于项目用 ...
- 阿里云部署Java web项目初体验(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...
- 阿里云上安装mysql步骤/ 阿里云ECS搭建Java+mysql+tomcat环境
使用阿里云ECS挺长一段时间了.这两天碰巧朋友小白让我一步一步教他在ECS上搭建Java+mysql+tomcat环境,所以把在这里把步骤在这简单整理了一下,以便需要的人查阅. 我购买的阿里云服务器系 ...
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...
- JAVA+PHP+阿里云组件纯手工实现POP、SMTP、IMAP开发邮件服务器(二)
java开发邮件服务器的接收模块 用java建立socket服务端,监听端口25,实现SMTP协议.即可完成邮件服务器的接收模块. 这里要注意的是,SMTP协议其实可以分为两种.一种是你用手机.PC等 ...
- 【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人聊天
作者:阿里云用户啊里新人 需求:基本实现智能聊天! 最近在开发一款机器人,希望实现基本的聊天功能,词库是有的,但是如果是做完全匹配这个出来的效果很悲催, 比如词库:你好,回答是:哈哈,很好啊. 如 ...
- 【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验
[阿里云产品公测]消息队列服务MQS java SDK 机器人应用初体验 作者:阿里云用户啊里新人 初体验 之 测评环境 由于MQS支持外网访问,因此我在本地做了一些简单测试(可能有些业余),之后 ...
随机推荐
- 开源 java 电商系统
shop++是基于spring.springmvc等主流框架开发,参考资料比较全面,上手容易: 比 javashop 代码可读性好. 适合二次开发 6.broadleaf基于spring.Spring ...
- 【数学 裴蜀定理】bzoj2257: [Jsoi2009]瓶子和燃料
使gcd最大的trick Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy的飞船上共有 N ...
- 【数学 exgcd】bzoj1407: [Noi2002]Savage
exgcd解不定方程时候$abs()$不能乱加 Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, L ...
- curl学习笔记(以php为例)
一.demo,抓取百度页码代码: $url = 'https://www.baidu.com/'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RE ...
- logging日志模块,四种方式
1.最简单的用法 import logging logging.error("hah") logging.info("hah") logging.debug(& ...
- 我的Python分析成长之路10
matplot数据可视化基础 制作提供信息的可视化(有时称作绘图)是数据分析中最重要任务之一. 1.图片(画布)与子图 plt.figure :创建一张空白的图片,可以指定图片的大小.像素. figu ...
- Python 编程要求
1.添加前缀 #!/usr/bin/env python # -*- coding:utf-8 -*- 2.py文件.函数都要写好注释 3.主函数要加上判断 if __name__ == " ...
- FFT-hdu题目练习
网上FFT的讲解和板子有很多,所以直接放题目 hdu1402 http://acm.hdu.edu.cn/showproblem.php?pid=1402 /* problem:大整数乘法 solut ...
- How To Configure VMware fencing using fence
本文主要简单介绍一下如何在RHEL 7 Pacemaker中配置一个fence_vmware_soap类型的STONITH设备(仅供测试学习). STONITH是Shoot-The-Other-Nod ...
- 动态修改字节码以替换用反射调用get set方法的形式
1. 起因 在前两天,为了解决websphere和JDK8上部署的应用发起webservice调用(框架用的cxf)时报错的问题,跟了一些代码,最终发现可以通过加上参数-Dcom.sun.xml.bi ...