zhouxin / pubhg

Unlimited private code, issue and wiki hosts.

'''服务器的部署'''[[BR]]

一、安装ubuntu-Server-amd-64 11.10

1. 以光盘模式启动计算机,到选择语言界面,选择English;[[BR]]

2. 选择“Install Ubuntu Server”,等待;[[BR]]

3. Language:English;[[BR]]

4. Country,territory or area:United States;[[BR]]

5. Detect keyboard layout:No;[[BR]]

6. Country of origin for the keyboard :USA,等待安装;[[BR]]

7. 设置Hostname:XXX;[[BR]]

8. 等待,getting the time from a network time server, Select your time zone:Eastern;

9. Partitioning method:选择use entire disk;swap设置为内存大小的2倍;[[BR]]

10. 设置新的服务器的名字、密码;[[BR]]

11. 选择要安装的软件[[BR]]

12. 等待,安装成功!

二、配置网络

Ubuntu的网络参数保存在文件 /etc/network/interfaces中,默认设置使用dhcp,内容如下:

# The primary network interface

auto eth0

iface eth0 inet dhcp

设置静态ip的方法如下:

1) 编辑 /etc/network/interfaces

1.1)将dhcp 一行屏蔽

# The primary network interface

auto eth0

#iface eth0 inet dhcp

1.2)添加和静态ip有关的参数

# The primary network interface {{{   iface eth0 inet static address 202.112.159.197 netmask 255.255.255.128 gateway 202.112.159.254 }}}

2) 需要重启

sudo /etc/init.d/networking restart

三、配置域名服务器

 编辑 /etc/resolv.conf,设置dns

{{{    nameserver 202.112.144.30    nameserver 202.112.144.65 }}}

四、配置软件源、更新软件包

需要安装(由于应用了ubuntu发行版,为了保证版本一致性,安装过程仅仅采用apt方式安装,不需要下载源代码编译): mysql-server , python-mysqldb(python连接mysql),

  python-reportlab(生成PDF),Ngnix(nginx, nginx-full), mercurial(版本管理),

  django 1.3.1, openssh(远程登录), python-flup (python的fcgi库), uwsgi, uwsgi-plugin-python,

  ia32-libs (32位兼容库), python-xlrd(读取/生成excel), python-excelerator

配置过程可能需要的命令:

gsmis@ubuntu-server:~$ mysqldump -u root gsadmission >gsa.dmp    将gsadmission上的数据-->gsa.dmp文件[[BR]]

gsmis@ubuntu-server:~$ scp gsa.dmp   gsmis@gs-dev.bjtu.edu.cn:~   将gsa.dmp文件拷贝到gs-dev.bjtu.edu.cn,以gsmis登录[[BR]]

gsmis@test-server:~$ mysql -u root gsadmission<./gsa.dmp  在测试服务器上,将gsa.dmp恢复成数据


解压缩:tar vxfz django

进入安装界面:sudo aptitude

查找带有pdf的软件包:python.*pdf

hg clone http://code.pubhg.com/gscms/dev/gscms

新建数据库: mysql > create database gscms charset utf8

五、nginx配置

配置文件/etc/nginx/nginx.conf,使conf.d和sites-enabled文件夹下的配置文件生效。

{{{ html{ ......

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    ......
  }

}}} sites-enabled文件夹下存放指向各站点nginx配置文件的链接即可。

nginx配置文件,以gscms为例:

{{{ server { listen 80 ; server_name gsn.bjtu.edu.cn gsn.njtu.edu.cn gs-dev.bjtu.edu.cn gs-dev.njtu.edu.cn; access_log /var/log/nginx/gscms.access.log;

include /etc/nginx/conf.d/bots.conf;

include /etc/nginx/uwsgi_params;
    location /site_media  {
    root /home/gsmis/work/gscms/;
}

    location / {
    uwsgi_pass unix:/home/gsmis/work/gscms/run/uwsgi.sock;

        valid_referers none *.bjtu.edu.cn *.njtu.edu.cn njtu.edu.cn bjtu.edu.cn;

if ($invalid_referer) {

return 403;

}

    }

}

}}} 配置完成后重启nginx

六、MySQL配置

my.cnf

{{{

log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2

max_connections = 513 table_cache = 1026 sort_buffer_size = 4M

innodb_buffer_pool_size = 512M

设置thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。thread_concurrency应设为CPU核数的2倍. 比如有一个双核的CPU, 那么thread_concurrency的应该为4; 2个双核的cpu, thread_concurrency的值应为8

属重点优化参数

thread_concurrency = 16

对于使用MySQL的用户,对于这个变量大家一定不会陌生。前几年的MyISAM引擎优化中,这个参数也是一个重要的优化参数。但随着发展,这个参数也爆露出来一些问题。机器的内存越来越大,人们也都习惯性的把以前有用的参数分配的值越来越大。这个参数加大后也引发了一系列问题。我们首先分析一下query_cache_size的工作原理:一个SELECT查询在DB中工作后,DB会把该语句缓存下来,当同样的一个SQL再次来到DB里调用时,DB在该表没发生变化的情况下把结果从缓存中返回给Client。这里有一个关建点,就是DB在利用Query_cache工作时,要求该语句涉及的表在这段时间内没有发生变更。那如果该表在发生变更时,Query_cache里的数据又怎么处理呢?首先要把Query_cache和该表相关的语句全部置为失效,然后在写入更新。那么如果Query_cache非常大,该表的查询结构又比较多,查询语句失效也慢,一个更新或是Insert就会很慢,这样看到的就是Update或是Insert怎么这么慢了。所以在数据库写入量或是更新量也比较大的系统,该参数不适合分配过大。而且在高并发,写入量大的系统,建系把该功能禁掉。

重点优化参数(主库 增删改-MyISAM)

query_cache_size = 256M

}}}

qinzhanming created at 12 years, 3 months ago