CentOS7 編譯安裝LVS 互為主備 (實測 筆記 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )

環境:

系統硬件:vmware vsphere (CPU:2*4核,內存2G,雙網卡)

LVS服務器(兩臺):

系統:Centos7.0 64位(LVS+keepalived)

LvsMaster:192.168.1.21 ?(主VIP:192.168.1.20 ,備VIP:192.168.1.18)

LvsBackup:192.168.1.22?(主VIP:192.168.1.18 ,備VIP:192.168.1.20)

Nginx服務器(三臺):

系統:Centos7.0 64位(Nginx服務,VIP:192.168.1.18)

IIS01:192.168.1.31

IIS02:192.168.1.32

IIS03:192.168.1.33

IIS服務器(三臺):

系統:Windwos2008R2 64位( IIS服務,VIP:192.168.1.20)

IIS01:192.168.1.41

IIS02:192.168.1.42

IIS03:192.168.1.43

?

安裝步驟:

1.安裝Web服務器(Linxu,nginx,主網卡接口名稱:ens192)

此處以服務器:web01,IP地址為:192.168.1.31說明(另外兩臺參考此處)

?

1.1 安裝系統(假定已經安裝好系統,并且已經能夠正常提供Nginx服務)
[root@web01 ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)


[root@web01?~]# uname -rs
Linux 3.10.0-123.20.1.el7.x86_64


修改主機名
[root@web01?~]# hostnamectl set-hostname?web01?

[root@web01?~]# hostname
web01?

?

[root@web01 ~]#?ip add show ens192

2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:50:56:94:02:4a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.31/24 brd 192.168.1.255 scope global ens192
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe94:24a/64 scope link
valid_lft forever preferred_lft forever

?

[root@web01 ~]#?curl http://192.168.1.31

<html>
<head>
<title>Web 01 10:43:18</title>
</head>
<body>
<h1>Web Server 01 index.html</h1>
<p>2015-03-17 10:43:18</p>
</body>
</html>

?

1.2 設置服務器,以支持vip訪問

方法1:直接創建lo:0文件,并且綁定VIP(192.168.1.18)

[root@web01 ~]#?vim /etc/sysconfig/network-scripts/ifcfg-lo:0

打開編輯器,輸入以下內容

DEVICE=lo:0
IPADDR=192.168.1.18
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback

保存、退出

?

重啟

[root@web01 ~]# shutdown -r now

?

測試是否綁定VIP

[root@web01 ~]# ip add show lo:0
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.1.18/32 brd 192.168.1.18 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

顯示綁定即inet 192.168.1.18/32 brd 192.168.1.18 scope global lo:0

?

解決ARP問題

[root@web01 ~]#?vim /etc/sysctl.conf

打開編輯器,輸入以下內容

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

保存、退出
設置即時生效
[root@web01 ~]#?sysctl -f

?

設置說明

#arp_ignore=1,系統只回答目的IP為是本地IP的包。也就是對廣播包不做響應。
#arp_announce=2,系統忽略IP包的源地址(source address),而根據目標主機(target host),選擇本地地址。

#arp_ignore 限制arp應答。限制等級:

#0:對于其它設備 的arp請求,應答所有其它接口的上IP的arp應答

#1:對于其它設備的arp請求,只應答本接口上IP的arp應答

#arp_announce 限制arp通告。限制等級:

#0:在接口上通告所有接口上IP的arp廣播

#1:對于其它設備的arp請求,在接口上盡量限制廣播通告應答(不夠嚴格)

#2:只通告本接口上IP的arp廣播

方法2:通過命令綁定綁定VIP(192.168.1.18)

[root@web01 ~]#?vim /usr/local/sbin/lvs_realserver.sh

打開編輯器,輸入以下內容

#!/bin/bash

VIP=192.168.1.18

/etc/rc.d/init.d/functions

case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

exit 0

保存、退出

?

運行,查看是否生效,是否綁定VIP

[root@web01 ~]#?/usr/local/sbin/lvs_realserver.sh start

[root@web01 ~]# ip add show lo:0


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 192.168.1.18/32 brd 192.168.1.18 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

?

顯示綁定即inet 192.168.1.18/32 brd 192.168.1.18 scope global lo:0

?

設置自動啟動

[root@web01 ~]#?vim /etc/rc.d/rc.local
打開編輯器,添加以下內容

/usr/local/sbin/lvs_realserver.sh start

保存退出

?

設置運行權限(否則啟動后,依然不會自動運行)

[root@web01 ~]#chmod 755 /etc/rc.d/rc.local

?

2.安裝Web服務器(Windows2008r2,IIS,主網卡接口名稱:本地連接)

此處以服務器:IIS01,IP地址為:192.168.1.41說明(另外兩臺參考此處)

?

2.1 安裝系統(假定已經安裝好系統,并且已經能夠正常提供IIS服務)

IP地址:192.168.1.41

子網掩碼:255.255.255.0

默認網關:192.168.1.1

首選DNS:192.168.1.1

網頁內容:

<html>
<head>
<title>IIS 01 10:43:18</title>
</head>
<body>
<h1>IIS 01 index.html</h1>
<p>2015-03-17 10:43:18</p>
</body>
</html>

?

2.2 設置服務器,添加環回接口,以支持vip訪問

打開設備管理器-右鍵服務器名-添加過時硬件-打開硬件添加向導

下一步-安裝我手動從列表選擇的硬件(高級)-下一步-打開安裝的硬件類型

選擇網絡適配器-下一步

廠商選擇(Microsoft),網絡適配器選擇(Microsoft Loopback Adapter)-下一步-下一步

點擊完成

?

打開網絡連接,修改Microsoft Loopback Adapter名稱為realserver

打開realserverTCP/IPv4屬性 修改IP地址

IP地址:192.168.1.20

子網掩碼:255.255.255.255

確認退出

?

運行cmd 打開命令行提示符窗口

運行以下命令修改網卡接口(即本地連接)、環回接口(即realserver) 連接模式,用于解決ARP問題(否則TCP的狀態會一直處于SYN_RECV 狀態)

netsh interface ipv4 set interface "本地連接" weakhostreceive=enabled

netsh interface ipv4 set interface "本地連接" weakhostsend=enabled

netsh interface ipv4 set interface "realserver" weakhostreceive=enabled

netsh interface ipv4 set interface "realserver" weakhostsend=enabled

netsh interface ipv4 set interface "loopback" weakhostreceive=enabled

netsh interface ipv4 set interface "loopback" weakhostsend=enabled

?

3.安裝LVS服務器(Linxu,ipvsadm,keepalived,主網卡接口名稱:ens160)

此處以服務器:lvs_master,IP地址為:192.168.1.21說明(lvs_backup 參考此處)

?

3.1.安裝lvs_master

安裝 CentOS-7.0-1406-x86_64-DVD.iso

?

3.2.更新
[root@centos ~]#?yum update

?

[root@centos ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)


[root@centos ~]# uname -rs
Linux 3.10.0-123.20.1.el7.x86_64

?

3.3.安裝基本軟件包

[root@centos ~]# yum install vim wget lsof gcc gcc-c++ bzip2 -y

[root@centos ~]# yum install net-tools bind-utils -y


3.4.修改主機名
[root@localhost ~]# hostnamectl set-hostname lvs_master

[root@lvs_master ~]# hostname
lvs_master


3.5.修改IP地址
[root@lvs_master ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="ens160"
ONBOOT="yes"
HWADDR="00:50:56:94:46:f8"
IPADDR="192.168.1.21" ? ??
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"

確認修改,退出

?

lvs_backup服務器修改說明:

HWADDR="lvs_backup相應MAC地址"

IPADDR="192.168.1.22"?

?

[root@lvs_master ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.21 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::250:56ff:fe94:204c prefixlen 64 scopeid 0x20<link>
ether 00:50:56:94:20:4c txqueuelen 1000 (Ethernet)
RX packets 41559 bytes 59971168 (57.1 MiB)
RX errors 0 dropped 10 overruns 0 frame 0
TX packets 27992 bytes 2121802 (2.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

?

3.6.安裝ipvsadm

[root@lvs_master ~]# yum install ipvsadm -y

================================================================================
Package 架構 版本 源 大小
================================================================================
正在安裝:
ipvsadm x86_64 1.27-4.el7 base 44 k

事務概要
================================================================================
安裝 1 軟件包


[root@lvs_master ~]# ipvsadm --version
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)


[root@lvs_master ~]# lsmod | grep ip_vs
ip_vs 136674 0
nf_conntrack 101024 9 ip_vs,nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,ip6table_nat,iptable_nat,nf_conntrack_ipv4,nf_conntrack_ipv6
libcrc32c 12644 2 xfs,ip_vs

?

3.7.安裝keepalived

[root@lvs_master src]# yum install kernel-devel -y

================================================================================
Package 架構 版本 源 大小
================================================================================
正在安裝:
kernel-devel x86_64 3.10.0-123.20.1.el7 updates 8.9 M

事務概要
================================================================================
安裝 1 軟件包

?

[root@lvs_master src]# ls /usr/src/kernels/
3.10.0-123.20.1.el7.x86_64


[root@lvs_master src]# cd /usr/local/src

[root@lvs_master src]# wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz

[root@lvs_master src]# tar zvxf keepalived-1.2.15.tar.gz

[root@lvs_master src]# cd keepalived-1.2.15


[root@lvs_master keepalived-1.2.15]# yum install popt-devel popt-static libnl-devel openssl-devel iptraf -y

[root@lvs_master keepalived-1.2.15]# ./configure --sysconfdir=/etc/ --sbindir=/usr/sbin/ --with-kernel-dir=/usr/src/kernels/3.10.0-123.20.1.el7.x86_64/


Keepalived configuration
------------------------
Keepalived version : 1.2.15
Compiler : gcc
Compiler flags : -g -O2 -DFALLBACK_LIBNL1
Extra Lib : -lssl -lcrypto -lcrypt -lnl
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : Yes
fwmark socket support : Yes
Use VRRP Framework : Yes
Use VRRP VMAC : No
SNMP support : No
SHA1 support
Use Debug flags : No

[root@lvs_master keepalived-1.2.15]# make && make install

[root@lvs_master keepalived-1.2.15]# /usr/sbin/keepalived --version
Keepalived v1.2.15 (03/06,2015)

[root@lvs_master keepalived-1.2.15]# systemctl status keepalived
keepalived.service - SYSV: Start and stop Keepalived
Loaded: loaded (/etc/rc.d/init.d/keepalived)
Active: inactive (dead)

?

3.8.配置keepalived

[root@lvs_master /]# vim /etc/keepalived/keepalived.conf

打開編輯,修改

! Configuration File for keepalived
global_defs {
notification_email {
me@vicowong.com   #警報接收郵件
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_MASTER ?  #lvs_backup 將LVS_MASTER修改為LVS_BACKUP

}

vrrp_instance VI_IIS {
state MASTER      #lvs_backup將MASTER改為BACKUP
interface ens160    #HA監測網絡接口
virtual_router_id 51  ?#主、備機的virtual_router_id一定要相同,必須相同!
priority 120?     ? ?#lvs_backup將120改為80
advert_int 1      ? #VRRP Multicast廣播周期秒數
authentication {
auth_type PASS #VRRP認證方式
auth_pass 1111 #VRRP口令字
}
virtual_ipaddress {
192.168.1.20 #LVS虛擬地址
}
}

virtual_server 192.168.1.20 80 {
delay_loop 2    #延時等待時間
lb_algo wrr   ? #輪詢算法
lb_kind DR   ? #傳輸模式
persistence_timeout 1 #單一鏈接重連保持時間
protocol TCP

real_server 192.168.1.41 80 {
weight 100   ? #權重
TCP_CHECK {    #realserve的狀態檢測設置部分,單位是秒
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.42 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

real_server 192.168.1.43 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

}

vrrp_instance VI_NGINX {
state BACKUP     ?#lvs_backup上將BACKUP改為MASTER
interface ens160    #HA監測網絡接口
virtual_router_id 53 ?#主、備機的virtual_router_id一定要相同,必須相同
priority 80?    ?#lvs_backup上將80改為120
advert_int 1    ?#VRRP Multicast廣播周期秒數
authentication {
auth_type PASS #VRRP認證方式
auth_pass 1111 #VRRP口令字
}
virtual_ipaddress {
192.168.1.18    #LVS虛擬地址
}
}

virtual_server 192.168.1.18 80 {
delay_loop 2    #延時等待時間
lb_algo wrr    #輪詢算法
lb_kind DR    #傳輸模式
persistence_timeout 1 #單一鏈接重連保持時間
protocol TCP

real_server 192.168.1.31 80 {
weight 100 #權重
TCP_CHECK {    #realserve的狀態檢測設置部分,單位是秒
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.32 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

real_server 192.168.1.33 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

}

?

3.9 修改系統配置文件

[root@lvs_master src]#?vim /etc/sysctl.conf

打開編輯器,修改

net.ipv4.ip_forward = 1

#net.ipv4.conf.default.rp_filter = 1
#net.ipv4.conf.default.accept_source_route = 0
#ernel.sysrq = 0
#kernel.core_uses_pid = 1

保存,退出

?

運行生效

?[root@lvs_master src]#?sysctl -p

net.ipv4.ip_forward = 1

?

?

3.10.LVS運行測試(主備LVS服務器各出打開三個終端,共6個終端,每個單獨運行以下一條命令,用于監測服務運行狀態)

一個終端查看日志信息

[root@lvs_master src]#?tail -f /var/log/messages

?

一個終端查看LVS當前設置

[root@lvs_master src]#?watch ipvsadm -Ln

?

一個終端查看轉發情況

[root@lvs_master src]#?watch ipvsadm -Lnc

?

3.11.設置自動運行keepalived
[root@lvs_master /]#?vim /etc/rc.d/rc.local

打開編輯器,添加以下內容

iptables -F

systemctl start keepalived

保存,退出

?

[root@lvs_master /]# chmod -x /etc/rc.d/rc.local

?

3.12.重啟keepalived服務

[root@lvs_master /]#?systemctl restart keepalived

信息可以在之前三個終端反映出來

?

3.13.關閉selinux?

[root@lvs_master?~]# vim /etc/selinux/config

打開編輯器,屏蔽以下兩行

#SELINUX=enforcing

#SELINUXTYPE=targeted

添加以下一行

SELINUXTYPE=disabled

保存退出

?

重啟后,查詢是否關閉(顯示Disabled則表示關閉)

[root@lvs_master?~]# shutdown -r now

[root@lvs_master?~]# getenforce

Disabled

?

?

轉載于:https://www.cnblogs.com/vicowong/p/4343984.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273355.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

shell 執行mysql語句

<pre name"code" class"plain">#變量定義 sqlname"test.sql" dir"/sdb2/backup/mysql_db_backup/backup/databases" host"127.0.0.1" user"root" passwd"root" dbname"test" #導…

hdu3081 Marriage Match II(最大流)

轉載請注明出處&#xff1a; http://www.cnblogs.com/fraud/ ——by fraud Marriage Match II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2410 Accepted Submission(s): 820 Problem Descriptio…

CentOS6安裝tomcat6

首先我們要下載一個tomcat的安裝包 http://ftp.riken.jp/net/apache/ wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.41/src/apache-tomcat-6.0.41.tar.gz 下載好后解壓到一個以目錄&#xff0c;我的是放在了/usr/apache-tomcat-6.0.41 tar –zxvf apache-t…

修復 XE7 , XE8 Frame 內 PopupMenu 快捷鍵失效問題

問題&#xff1a;將 Frame 含 PopupMenu 放置 Form 后&#xff0c;在 Frame 里的 PopupMenu 失效&#xff0c;無法按快捷鍵。 適用&#xff1a;(XE7 update 1 / XE8) for Windows 平臺 修正方法&#xff1a; 請將源碼 FMX.Forms.pas 復制到自己的工程目錄里&#xff0c;再進行修…

Vmware Centos中安裝vmtools工具

在Vmware安裝虛擬機是很好玩的&#xff0c;可是有時候在虛擬機與本地主機之間相互傳遞文件時卻是一件比較麻煩的事情&#xff0c;這時候我們安裝一個vmtools的工具這樣我們就可以隨意的在虛擬機與主機之間相互拖拽文件&#xff0c;下面我們就來說說如何安裝vmtools 點擊虛擬機會…

關于Dapper - 能否不創建定義表對應類使用

1.是可以的&#xff0c;而且支持的很棒 1 /*2 lcg3 * 1.看看能不能用4 * 2.怎么用 - 引哪個文件即可&#xff1f;5 */6 7 //數據庫連接參數8 private const string strConn "Data SourceAlen;Initial Catal…

動態規劃 背包九講的實現。

最近在學習動態規劃&#xff0c;會了不少基礎的之后就開始挑戰比較困難的背包問題了&#xff0c;我這里自己寫了每一講的問題&#xff0c;解析&#xff0c;代碼&#xff0c;注釋。如果dp還沒入門的孩紙就去看看我的另一篇文章http://www.cnblogs.com/luyi14/p/4344946.html …

Linux中查看負載

行車過橋 一只單核的處理器可以形象得比喻成一條單車道。設想下&#xff0c;你現在需要收取這條道路的過橋 費 — 忙于處理那些將要過橋的車輛。你首先當然需要了解些信息&#xff0c;例如車輛的載重、以及 還有多少車輛正在等待過橋。如果前面沒有車輛在等待&#xff0c;那么你…

flask小demo-數據查詢

mysqlconn-flask.py 1 # -*- coding: utf-8 -*-2 #codingutf-83 4 import os5 import mysql.connector6 from flask import Flask, request, render_template7 8 app Flask(__name__)9 10 def db(): 11 # 注意把password設為你的root口令: 12 conn mysql.connect…

js實現的文件下載

/** * Javascript 多文件下載 * author Barret Lee * email barret.chinagmail.com */var Downer (function(files) { var h5Down !/Trident|MSIE/.test(navigator.userAgent); // try{ // h5Down document.createElement("a").hasOwnProperty("download&quo…

Jersey注解詳解

REST 在 2000 年由 Roy Fielding 在博士論文中提出&#xff0c;他是 HTTP 規范 1.0 和 1.1 版的首席作者之一。 REST 中最重要的概念是資源&#xff08;resources&#xff09;&#xff0c;使用全球 ID&#xff08;通常使用 URI&#xff09;標識。客戶端應用程序使用 HTTP 方法&…

Struts2配置文件詳解

解決在斷網環境下,配置文件無提示的問題我們可以看到Struts.xml在斷網的情況下,前面有一個嘆號,這時,我們按alt/ 沒有提示,這是因為” http://struts.apache.org/dtds/struts-2.0.dtd”是一個網絡地址,如果上網的話,IDE會自動幫我們下載此文件,如果斷網就沒有辦法了,但是我們還…

mysql插入圖片數據

import java.sql.*; import java.util.Scanner; import java.io.*; public class mysql插入圖片 { private static final File File null;private static String String;public static Connection getConn() { Connection conn null; try { Class.forName("com.…

mybatis插入圖片處理--mysql

1. 數據庫Scheme 1.數據庫SchemeDROP TABLE IF EXISTS user_graphic_t; /*!40101 SET saved_cs_client character_set_client */; /*!40101 SET character_set_client utf8 */; CREATE TABLE user_graphic_t ( id int(11) NOT NULL AUTO_INCREMENT, graph…

careercup-高等難度 18.6

18.6 設計一個算法&#xff0c;給定10億個數字&#xff0c;找出最小的100萬個數字。假定計算機內存足以容納全部10億個數字。 解法&#xff1a; 方法1&#xff1a;排序 按升序排序所有的元素&#xff0c;然后取出前100萬個數&#xff0c;時間復雜度為O(nlog(n)) 方法2&#xff…

不浮躁的社會是什么樣的?

不浮躁就是該吃飯吃飯&#xff0c;該睡覺睡覺。該看書看書&#xff0c;該洗澡洗澡。聊事時聊事&#xff0c;陪朋友時陪朋友。萬事各得其所&#xff0c;各安其分&#xff0c;專心在此時此刻&#xff0c;做每一件事。而不是吃飯時想著別人的魚翅海參&#xff0c;睡覺時想著發票報…

java jre 中導入導出證書

導入證書&#xff1a; 將所要導入的證書放到Javahome的jre/lib/security文件夾中 運行命令jre/bin/keytool-import -alias cacerts -keystore cacerts -file 證書名稱 輸入默認密碼&#xff1a;changeit 導入過程中會交互詢問是否信任該證書&#xff0c;輸入 yes 導出證書 …

各種類庫網址學習

http://shouce.jb51.net/net/index.html轉載于:https://www.cnblogs.com/chenls/p/4362730.html

圖片的base64編碼實現以及網頁上顯示

生成、解析base64編碼的圖片 //圖片轉化成base64字符串 public static String GetImageStr(<span style"font-family: Arial, Helvetica, sans-serif;">String imgFile</span><span style"font-family: Arial, Helvetica, sans-serif;">…

nginx windows 下安裝和配置

去nginx官網下載相應的版本 下載地址&#xff1a;http://nginx.org/download/nginx-1.6.2.zip 下載完成解壓放到你喜歡的目錄下&#xff1b;樓主的放到了F:\nginx 進入windows的cmd窗口&#xff0c;輸入如下所示的命令&#xff1a; C:\Users\YiXian>F: F:\>cd nginx s…