我想知道如何让 NginX(负载均衡器)接受 443 上的流量并将其转发到负载均衡 Web 服务器节点上的端口 443。
我使用 NginX 作为负载均衡器,其中 SSL 终止发生在 NginX 级别。然后 NginX 将未加密的流量发送到端口 80 上的 Web 服务。
这是我当前的 ngnx 配置:
upstream appserver {
server 10.0.1.132;
server 10.0.1.243;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://appserver;
}
}
Run Code Online (Sandbox Code Playgroud)
我经历过:Nginx load balance with upstream SSL
我真正的问题是,如果我想让 NginX 监听 443 上的流量,那么我需要在 nignx 上配置 ssl 终止。否则 nginx 服务将无法启动,并且会抱怨缺少 ssl 证书/密钥。
简而言之,我希望 Nginx 简单地接受 …
我需要针对工作日和周末制定不同的自动缩放策略。
到目前为止,我弄清楚了如何每天设置相同的策略。cmd 调用和 CRON 字符串如下所示:
as-put-scheduled-update-group-action TNUPWN --auto-scaling-group TNASG --region us-west-2 --recurrence "30 18 * * *" --desired-capacity 1
Run Code Online (Sandbox Code Playgroud)
但是当我尝试仅为工作日设置 CRON 字符串时,例如
30 7 ? * MON-FRI *
or
0 30 7 ? * MON-FRI *
Run Code Online (Sandbox Code Playgroud)
我收到错误
as-put-scheduled-update-group-action: Malformed input-Given recurrence string:30 1 ? * MON-FRI * is
invalid
Usage:
as-put-scheduled-update-group-action
ScheduledActionName --auto-scaling-group value [--desired-capacity
value ] [--end-time value ] [--max-size value ] [--min-size value ]
[--recurrence value ] [--start-time value ] [--time value ]
[General Options]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?AWS 也可以实现吗?
抱歉,标题令人困惑。我对 Jenkins 完全陌生,并且已经将 Jenkins 交给了维护,这是由其他人设置的。
这是 Jenkins 主从配置。我有 1 个主人和 3 个奴隶。
当我通过“复制现有”作业创建新作业时,新作业运行良好且没有问题。
问题:我看到在 Jenkins 工作区中,此新作业正在创建一个文件夹,其中包含从中复制的原始作业的名称。为什么不使用新作业的名称创建文件夹?
现在,这对我来说当然不是一个表演障碍,但似乎 Jenkins 正在为每个运行的作业在工作区中创建一个文件夹。因此这个特定的文件夹引起了一些混乱(尽管它是名义上的)。
因此,您能帮我找出为什么新作业要创建一个工作区文件夹,其名称是从中复制的原始作业的名称。
顺便说一句,上面的问题是在 Jenkins slave 上看到的。
这是我的YAML文件:
hosts: all
gather_facts: no
remote_user: ubuntu
name: install latest nginx
tasks:
- name: install the nginx key
apt_key:
url: http://nginx.org/keys/nginx_signing.key
state: present
become: yes
- name: install aws cli
command: pip3 install awscli
become: yes
Run Code Online (Sandbox Code Playgroud)
这是我的
去代码:
package main
import (
"github.com/davecgh/go-spew/spew"
"gopkg.in/yaml.v2"
"io/ioutil"
)
type Config struct {
Hosts string `yaml:hosts`
Gather_facts string `yaml:gatherfacts`
Remote_user string `yaml:remoteuser`
Name string `yaml:names`
Tasks []map[string]string `yaml:tasks`
}
func main() {
file, err := ioutil.ReadFile("/path-to-nginx1.yml")
if err != nil …Run Code Online (Sandbox Code Playgroud) 我正面临着 perl chomp 功能的问题。我有一个test.csv如下:
col1,col2
vm1,fd1
vm2,fd2
vm3,fd3
vm4,fd4
Run Code Online (Sandbox Code Playgroud)
我想打印这个 csv 的第二个字段。这是我的代码:
#!/usr/bin/perl -w
use strict;
my $file = "test.csv";
open (my $FH, '<', $file);
my @array = (<$FH>);
close $FH;
foreach (@array)
{
my @row = split (/,/,$_);
my $var = chomp ($row[1]); ### <<< this is the problem
print $var;
}
Run Code Online (Sandbox Code Playgroud)
aboe 代码的输出是:
11111
Run Code Online (Sandbox Code Playgroud)
我真的不知道“1”是从哪里来的。实际上,最后一个文件可以打印如下:
foreach (@array)
{
my @row = split (/,/,$_);
print $row[1]; ### << Note that I am not printing "\n"
}
Run Code Online (Sandbox Code Playgroud)
输出是: …
我正在通过引用这个和这个来学习ruby中的选项解析.这是我的测试代码:
#!/usr/bin/ruby
require "optparse"
options = {}
optparse = OptionParser.new do |opts|
opts.banner = "Learning Option parsing in Ruby"
opts.on("-i", "--ipaddress", "IP address of the server") do |ipaddr|
options[:ipaddress] = ipaddr
end
opts.on("-u", "--username", "username to log in") do |user|
options[:username] = user
end
opts.on("-p", "--password", "password of the user") do |pass|
options[:password] = pass
end
end
optparse.parse!
puts "the IPaddress is #{options[:ipaddress]}" if options[:ipaddress]
puts "the username is #{options[:username]}" if options[:username]
puts "the password is …Run Code Online (Sandbox Code Playgroud) 目前,我在MYSQL上运行多个语句,如下所示;
my $sth1 = $dbh->prepare("ALTER TABLE whatever....");
my $sth2 = $dbh->prepare("UPDATE whatever....");
my $sth3 = $dbh->prepare("ALTER TABLE whatever....");
my $sth4 = $dbh->prepare("DROP TABLE whatever....");
my $sth5 = $dbh->prepare("DROP TABLE whatever....");
$sth1->execute;
$sth1->finish;
$sth2->execute;
$sth2->finish;
$sth3->execute;
$sth3->finish;
$sth4->execute;
$sth4->finish;
$sth5->execute;
$sth5->finish;
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常.
但是,我有大约50多个这样的查询.所以你可以想象上面这些线的大小.我上面粘贴的只是5个查询.
题:
是否有更好的方式来运行多个MySQL查询/语句Perl DBI?
我想使用AWS-SDK-CORE ruby SDK将文件(任何文件,可能是.txt,.mp4,.mp3,.zip,.tar ......等)上传到AWS S3
这是我的代码:
require 'aws-sdk-core'
Aws.config = {
:access_key_id => MY_ACCESS_KEY
:secret_access_key => MY_SECRET_KEY,
:region => 'us-west-2'
}
s3 = Aws::S3.new
resp = s3.put_object(
:bucket => "mybucket",
:key => "myfolder/upload_me.sql",
:body => "./upload_me.sql"
)
Run Code Online (Sandbox Code Playgroud)
现在,上面的代码运行并创建一个myfolder/upload_me.sql只写了一行的键,./upload_me.sql哪个是错的.该文件upload_me.sql有几行.
预期的行为是将文件上传到upload_me.sqlS3上mybucket/myfolder/upload_me.sql.但它只是写了一行mybucket/myfolder/upload_me.sql,就是这样./upload_me.sql
现在,如果我省略如下:body部分:
s3 = Aws::S3.new
resp = s3.put_object(
:bucket => "mybucket",
:key => "myfolder/upload_me.sql",
)
Run Code Online (Sandbox Code Playgroud)
然后它只是创建并清空所谓的mybucket/myfolder/upload_me.sql甚至无法下载的密钥(好吧,即使它被下载,也没用)
你能指出我哪里出错吗?
以下是方法的ruby-SDK-core文档put_object:http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/V20060301.html#put_object-instance_method …
有很多谷歌结果可以回答这个问题。然而,似乎没有一个对我有用。因此,我正在创建这个问题并回答它以供我自己将来参考以及可能通过 Google 访问此线程的任何其他人。
我正在研究一个原型来拉股票滴答并将它们转储到数据库。我想__tablename__作为参数传递给 SQLAchemy,以便将给定股票的股票报价记录到它自己的表中。(顺便说一句,我是 SQLAlchemy 的新手)
我提到了这个线程:Python Sqlalchemy - tablename as a variable
并提出了以下代码:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, scoped_session
from sqlalchemy import Column, String, Integer, Date
Base = declarative_base()
def create_models(tablename):
class Stock(Base):
__tablename__ = tablename
timestamp = Column(String, primary_key=True)
ltp = Column(String)
def __init__(self, timestamp, ltp):
self.timestamp = timestamp
self.ltp = ltp
create_models('ABCD')
engine = create_engine('sqlite:////ticks.db')
Base.metadata.create_all(bind=engine)
session_factory = sessionmaker(bind=engine)
Session = scoped_session(session_factory)()
tick = Stock('2019-02-12 09:15:00', '287')
Session.merge(tick)
Session.commit() …Run Code Online (Sandbox Code Playgroud)