web应用的语言环境,如果你手中的web应用端是.net,那么直接选择win的系统,如果web应用端是php或者jsp,那么就要从以下几点继续考虑了。
对系统的认真程度,作为中小型企业或者个人用户在选择服务器系统时,一般都是两个选择,一种是我们最常用的windows,一种是用户逐步上涨的linux,那么再选择属于我们自己的系统时,就要考虑我们对系统的了解了。很多人选择linux,问他为什么。他说,linux更安全,不会中病毒,不会中木马,不死机。windows病毒木马太多了,太容易受到恶意攻击了。在这里我可以说这种盲目的选择是错误的。任何系统都有破绽,都会中病毒,或者受到恶意攻击。
对成本的要求,windows与linux最大的区别就是一个是不开源的项目,一个是开源项目,很简单。
windows有成熟的系统服务支持,价格昂贵,那有人说了,我把server破解了,一样用啊,也不收费,我自己维护。那我想有这样想法的童鞋,有一大部分都选择了linux,因为linux属于开源的项目,有很多精英团队在共同开发linux,很多服务都有开源提供下载,网上相关资料也很多,这就为我们在系统和服务支持上面节省了大量的资金。
从上面我自己啰哩啰嗦总结的这三点,我选择是的linux -centos操作系统,就不多说了,继续往下走。
在IBM HP DELL之间 同等配置 DELL属于价格最便宜的。
DELL服务器可以根据自己实际需求来选择硬件。
我们这边的DELL的售后我接触过,比较放心。
CPU对mysql数据库的起至关重要的作用,核心多少,性能高低,决定了数据库查询快慢
内存这里建议选择大内存,内存还是比较便宜的16G或者32G都要普及了。
硬盘选择,这里我建议选择4块15000转的硬盘,具体每块磁盘空间大小根据实际需求决定,这么选择的好处是,RAID 可选性交多,可以选择RAID10或者选择RAID5,而且也处于灾备考虑,若是在RAID5情况下 坏掉了一块硬盘,那么就拔掉一块,一时半会来不及换新硬盘也不会影响到我们服务器的正常运行。
阵列卡的选择,若是选择硬阵列卡的话就有缓存问题,再有对存储读取方面有需求的话,可以选择缓存较大的。
电源选择我觉得为了安全起见就选2块,一块电源就几百块钱,买个放心。
1
2
|
yum
install
gcc gcc-c++
make
cmake wget libtool perl-devel ncurses-devel libxml2-devel
zlib-devel
|
1
2
3
4
5
6
7
8
9
10
|
tar
-xvf jdk1.6.
tar
.gz
mv
jdk1.6.
tar
.gz
/usr/local/jdk
接下来加入环境变量
vi
/etc/profile
在最后添加上:
export
JAVA_HOME=
/usr/local/jdk
export
PATH=$PATH:$JAVA_HOME
/bin
保存退出:
source
/etc/profile
刷新一下系统变量,这样可以不用重启服务器
java -version 查看一下 jdk版本
|
1
2
3
4
|
tar
-xvf tomcat.6.0.36.
tar
.gz
mv
apache-tomcat-6.0.36
/usr/local/tomcat
启动tomcat:
/usr/local/tomcat/bin/startup
.sh
|
1
2
3
4
5
|
tar
-xvf pcre-8.02.
tar
.gz
cd
pcre-8.02
make
&&
make
install
cd
/lib64
ln
-s libpcre.so.0.0.1 libpcre.so.1
|
1
2
3
4
5
6
7
|
tar
-xvf nginx-1.2.5.
tar
.gz
cd
nginx-1.2.5
.
/configure
--prefix=
/usr/local/nginx
\ 指定nginx的安装目录
--with-http_stub_status_module \ 启用nginx的status功能,可以监控nginx当前状态
--with-http_gzip_static_module \ 支持在线实时压缩输出数据流
--with-google_perftools_module \ 支持TCMalloc对Nginx性能的优化
make
&&
make
install
|
1
|
vi
/usr/local/nginx/conf/nginx
.conf
|
1
2
3
4
5
6
7
8
9
|
user nobody nobody; 指定了Nginx Worker进程运行用户及用户组,此处是默认值
worker_processes
4
; 指定了Nginx开启的进程数,如果多核CPU,就设置与CPU的核心数量一样多
error_log logs/error.log notice; 定义了全局错误日志 级别为notice
pid logs/nginx.pid; 指定了nginx进程id存储文件的位置
worker_rlimit_nofile
65535
; 用于绑定worker进程和CPU
events{ 用来设定Nginx的工作模式以及连接数上限
use
epoll; Nginx的工作模式,对于linux系统 epoll模式为首选
worker_connections
60000
; 每个进程的最大连接数 下面公式:
}
|
1
|
vi
/etc/security/limits
.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
http{
include conf
/mime
.types;
default_type application
/octet-stream
;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"'
;
log_format download
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"'
;
client_max_body_size 20m;
client_header_buffer_size 32k;
large_client_header_buffers 4 64k;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
}
|
1
2
3
4
5
6
7
|
gzip on;
gzip_min_length 1k;
gzip_buffers
4
16k;
gzip_http_version
1.1
;
gzip_comp_level
2
;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_very on;
|
1
2
3
4
5
6
|
upstream tomcats{
ip_hash;
server
192.168
.
1.200
:
8080
;
server
192.168
.
1.201
:
8080
down;
server
192.168
.
1.202
:
8080
max_fails=
3
fail_timeout=20s;
}
|
1
2
3
4
5
6
7
8
|
server{
listen
8080
; 端口根据自己后端服务器情况而定
server_name
192.168
.
1.200
www.abc.com; 可以是IP 也可以通过域名
index index.html index.htm index.jsp; 设定访问默认首页的地址
root /www/abc 虚拟机的网页根目录
charset gb2312; 用于设置网页的编码格式
access_log logs/abc.access.log main; 访问日志存放路径 用main指定输出格式
}
|
1
2
3
4
|
location ~ .*\.(gif|jpg|png|swf)$ {
root /web/abc; 网站根目录
expires 30d; 指定静态文件的过期时间 这里是
30
天
}
|
1
2
3
4
|
location ~ ^/(upload|html)/ {
root /web/abc; 网站根目录
expires 30d; 指定静态文件的过期时间 这里是
30
天
}
|
1
2
3
4
|
location ~ .*.jsp$ {
index index.jsp;
proxy_pass http:
//localhost:8080;
}
|
1
2
3
4
5
|
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html; 指定 返回错误后 从哪找错误页面
}
|
1
2
|
/usr/local/nginx/sbin/nginx
这样就启动了Nginx
ps
-ef |
grep
nginx 如图:
|
1
|
kill
7665 这样就关闭了nginx
|
1
|
mkdir
-p
/usr/local/webserver/mysql/
|
1
|
mkdir
-p
/data/mysql/
|
1
2
3
|
groupadd mysql
useradd
-g mysql mysql
chown
mysql.mysql -R
/data/mysql/
|
1
2
3
|
wget http:
//mirrors
.sohu.com
/mysql/MySQL-5
.5
/mysql-5
.5.11.
tar
.gz
tar
zxvf mysql-5.5.11.
tar
.gz
cd
mysql-5.5.11
|
1
2
3
4
5
6
7
8
9
10
|
cmake -DCMAKE_INSTALL_PREFIX=
/usr/local/mysql/
\
-DMYSQL_DATADIR=
/data/mysql
\
-DMYSQL_UNIX_ADDR=
/data/mysql/mysqld
.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \-DMYSQL_TCP_PORT=3306 \
-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_UNIX_ADDR=
/data/mysql/mysql
.sock \
-DMYSQL_USER=mysql \-DWITH_DEBUG=0
make
&&
make
install
|
1
2
3
|
cp
support-files
/my-medium
.cnf
/etc/my
.cnf
cp
support-files
/mysql
.server
/etc/init
.d
/mysqld
chmod
755
/etc/init
.d
/mysqld
|
1
2
3
4
|
cd
/usr/local/mysql/scripts
.
/mysql_install_db
--user=mysql \
--basedir=
/usr/local/webserver/mysql
\
--datadir=
/data/mysql/
&
|
1
2
|
/etc/init
.d
/mysqld
start
ps
-ef |
grep
mysql 命令查看是否启动
|
1
|
/usr/local/webserver/mysql/bin/mysql
-u root -p
|
1
|
delete
from
mysql.
user
where
user
=
""
;
|
1
2
|
use mysql ;
insert
into
user
set
host=
'%'
,
user
=
'root'
,
password
=
''
;
|
1
2
3
4
|
use mysql ;
set
password
for
'root'
@
'localhost'
=
PASSWORD
(
"123456"
);
set
password
for
'root'
@
'%'
=
PASSWORD
(
"123456"
);
FLUSH
PRIVILEGES
;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
|
1
|
mkdir
-p
/usr/local/webserver/mysql/
|