说明: 1.官网采用LAMP框架,nginx做前端轮询代理 2、移除系统自带的rpm包的http mysql php yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd -y 3 安装必备的开发包 /usr/bin/yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel \ ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel \ gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel \ libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libxml2 \ libmhash-devel mysql-devel libxslt libxslt-devel curl tcl expect 4.同步系统时间: vim /etc/ntp.conf server 3.cn.pool.ntp.org server 3.asia.pool.ntp.org server 0.asia.pool.ntp.org chkconfig ntpd on service ntpd restart 5.IP分配 nginx:192.168.201.4 192.168.201.5 192.168.201.6 192.168.201.7 apache:192.168.201.123---192.168.201.138 - 一.nginx搭建
- 1.下载源码包nginx-1.4.2
- 2.安装nginx
- ./configuer --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module & make & make install
- 3.配置文件如下
- user nobody;
- worker_processes 8;
- pid logs/nginx.pid;
- events {
- use epoll;
- worker_connections 65535;
- }
- http {
- # 设置一个共享内存区域reqnum,以用于限制每个客户端IP可以并发连接的请求数
- # limit_conn_zone $binary_remote_addr zone=reqnum:10m;
- # 每个客户端IP每分钟只允许5个连接
- # limit_req_zone $binary_remote_addr zone=reqone:10m rate=10r/m;
- include mime.types;
- default_type application/octet-stream;
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 60;
- server_tokens off;
- log_format wwwlog '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" $http_x_forwarded_for';
- access_log /usr/local/nginx/logs/access.log wwwlog;
- gzip on;
- gzip_min_length 1k;
- gzip_buffers 4 16k;
- gzip_http_version 1.1;
- gzip_comp_level 3;
- gzip_types text/plain application/x-javascript text/css applicati
- on/xml;
- gzip_vary on;
- server_names_hash_bucket_size 128;
- client_header_buffer_size 32k;
- client_max_body_size 300m;
- client_body_buffer_size 512k;
- large_client_header_buffers 4 32k;
- proxy_connect_timeout 60;
- proxy_send_timeout 120;
- proxy_read_timeout 120;
- proxy_buffer_size 16k;
- proxy_buffers 4 64k;
- proxy_busy_buffers_size 128k;
- proxy_temp_file_write_size 128k;
- index index.php index.htm index.html default.php default.htm defaul
- t.html index.php3;
- upstream os_server {
- # ip_hash;
- # server 192.168.201.122:80 weight=1;
- server 192.168.201.123:80 weight=1;
- server 192.168.201.124:80 weight=1;
- server 192.168.201.125:80 weight=1;
- server 192.168.201.126:80 weight=1;
- server 192.168.201.127:80 weight=1;
- server 192.168.201.128:80 weight=1;
- server 192.168.201.129:80 weight=1;
- server 192.168.201.130:80 weight=1;
- server 192.168.201.131:80 weight=1;
- server 192.168.201.132:80 weight=1;
- server 192.168.201.133:80 weight=1;
- server 192.168.201.134:80 weight=1;
- server 192.168.201.136:80 weight=1;
- server 192.168.201.137:80 weight=1;
- server 192.168.201.138:80 weight=1;
- }
- upstream m_server {
- # ip_hash;
- # server 192.168.201.122:80 weight=1;
- server 192.168.201.123:80 weight=1;
- server 192.168.201.124:80 weight=1;
- server 192.168.201.125:80 weight=1;
- server 192.168.201.126:80 weight=1;
- server 192.168.201.127:80 weight=1;
- server 192.168.201.128:80 weight=1;
- server 192.168.201.129:80 weight=1;
- server 192.168.201.130:80 weight=1;
- server 192.168.201.131:80 weight=1;
- server 192.168.201.132:80 weight=1;
- server 192.168.201.133:80 weight=1;
- server 192.168.201.134:80 weight=1;
- server 192.168.201.136:80 weight=1;
- server 192.168.201.137:80 weight=1;
- server 192.168.201.138:80 weight=1;
- }
- upstream weixin_server {
- # ip_hash;
- server 192.168.201.35:80 weight=1;
- server 192.168.201.34:80 weight=1;
- }
- upstream op_server {
- # ip_hash;
- server 192.168.201.35:80 weight=1;
- # server 192.168.201.34:80 weight=1;
- }
- #---------------------------www.lqxshop.com-----------------------
- server {
- listen 80;
- server_name www.shop.com www.ilqx.cn www.chenggongfang.com wx.lqxshop.c
- om;
- #限制每个连接的带宽大小
- #limit_rate 40k;
- #限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数不
- 得超过burst指定
- #limit_req zone=reqone burst=50;
- #使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
- #limit_conn reqnum 20;
- location / {
- proxy_set_header HTTP_REFERER $http_referer;
- proxy_pass http://os_server;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- index index.html index.php index.htm index.jsp;
- }
- }
- #--------------------------------m.lqxshop.com----------------------
- server {
- listen 80;
- #限制每个连接的带宽大小
- #limit_rate 40k;
- #限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数不
- 得超过burst指定
- #limit_req zone=reqone burst=50;
- #使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
- #limit_conn reqnum 20;
- server_name m.shop.com m1.shop.com m2.shop.com;
- location / {
- proxy_pass http://m_server;
- proxy_set_header HTTP_REFERER $http_referer;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- index index.html index.htm index.jsp;
- }
- }
- #--------------------------------weixin.lqxshop.com----------------------
- server {
- listen 80;
- #限制每个连接的带宽大小
- #limit_rate 40k;
- #限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数
- 得超过burst指定
- #limit_req zone=reqone burst=50;
- #使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
- #limit_conn reqnum 20;
- server_name weixin.shop.com;
- location / {
- proxy_pass http://weixin_server;
- proxy_set_header HTTP_REFERER $http_referer;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- index index.html index.htm index.jsp;
- }
- }
- #--------------------------------op.lqxshop.com----------------------
- server {
- listen 80;
- #限制每个连接的带宽大小
- #limit_rate 30k;
- #限制每个客户端ip在指定时间内容允许连接的请求数,且超过限制连接频率的连接数
- 得超过burst指定
- #limit_req zone=reqone burst=50;
- #使用前面定义的共享内存区域,限制每个客户端IP并发连接的最大数
- #limit_conn reqnum 20;
- server_name op.shop.com;
- location / {
- proxy_pass http://op_server;
- proxy_set_header HTTP_REFERER $http_referer;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- index index.html index.htm index.jsp;
- }
- }
- }
- 二.APP(Apache+php)搭建
- 1、移除系统自带的rpm包的http mysql php
- yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd -y
- 2 安装必备的开发包
- /usr/bin/yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel \
- ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel \
- gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel \
- libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libxml2 \
- libmhash-devel mysql-devel libxslt libxslt-devel curl tcl expect
3.同步系统时间:
- vim /etc/ntp.conf
- server 3.cn.pool.ntp.org
- server 3.asia.pool.ntp.org
- server 0.asia.pool.ntp.org
- chkconfig ntpd on
- service ntpd restart
- 4.安装Apache:
- ##############安装需要的插件:apr、apr-util、pcre、libmcrypt######################################
- cd /usr/local/src/
- cd apr-1.4.8################(rm: cannot remove `libtoolT': No such file or directory///////修改configure文件,+++++把RM='$RM'改为RM='$RM -f'+++++)
- ./configure --prefix=/usr/local/apr && make && make install
- cd ../apr-util-1.5.2/
- ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ && make && make install
- cd ../pcre-8.33/
- ./configure --prefix=/usr/local/pcre --enable-utf8 && make && make install
- cd ../libmcrypt-2.5.8/
- ./configure --prefix=/usr/local/libmcrypt && make && make install
- ###################开始安装Apache,并修改开启启动##################################################
- cd ../httpd-2.4.6/
- ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/
- make && make install
- /usr/local/apache/bin/apachectl start
- cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
- vim /etc/init.d/httpd(第二行添加注释信息,添加为系统服务)
- # chkconfig: 35 61 61
- # description: Apache
- chkconfig --add httpd
- chkconfig httpd on
- 5.安装php:
- cd ../php-5.5.3/
- ./configure --prefix=/usr/local/php --mandir=/usr/local/share/man --infodir=/usr/local/share/info --with-apxs2=/usr/local/apache/bin/apxs --enable-cgi --with-mysql --with-config-file-path=/usr/local/php/etc --with-pdo-mysql --with-mysqli --enable-zip -enable-sockets --enable-soap --enable-pcntl --enable-mbstring --enable-intl --enable-calendar --enable-bcmath --enable-exif --with-mcrypt --with-mhash --with-gd --with-png-dir --with-jpeg-dir --with-freetype-dir --with-libxml-dir --with-curl --with-zlib --with-openssl --with-kerberos=shared --with-gettext=shared --with-xmlrpc=shared --with-mcrypt=/usr/local/libmcrypt
- make && make install
- 装载XXX模块
- cd /usr/local/httpd-2.2.22/modules/generators/
- /usr/local/apache/bin/apxs -i -a -c mod_cgi.c
- 6.apache和php结合:
- vim /usr/local/apache/conf/httpd.conf
- 查找AddType application/x-gzip .gz .tgz,在该行下面添加
- AddType application/x-httpd-php .php
- 查找DirectoryIndex index.html 把该行修改成
- DirectoryIndex index.html index.htm index.php
- 测试apache和php是否整合成功,下面我们测试apache和php是否整合成功,在apache文档跟目录下新建一个小小的php程序
- cd /usr/local/apache/htdocs
- vi index.php //在index.php文件中写入下面三行
- <?php
- phpinfo();
- ?>
- 重启apache服务
- /sbin/service httpd restart
- 访问,在浏览器中输入http://localhost(ip地址)/index.php 出现php信息界面则说明整合成功
- elinks http://localhost/index.php
- 成功的页面
- 三.mysql搭建
- 10 11
- 软件源代码包存放位置 /opt
- 软件解压位置 /usr/local/src
- 源码包编译安装位置(prefix) /usr/local/
- 脚本以及维护程序存放位置 /script
- 数据库文件位置: /data/mysql/
- 数据库日志位置: /data/log
- 数据库备份目录: /data/backup
- 1.卸载默认的mysql及apache的rpm包
- yum remove httpd mysql mysql-server php php-cli php-common php-devel php-gd -y
- yum install ntp
- service ntpd stop
- ntpdate cn.pool.ntp.org
- service ntpd start
- chkconfig --level 2345 ntpd on
- 2.安装依赖包
- yum install gcc gcc-c++ make cmake ncurses-devel vim -y
- cd /opt
- tar zxvf cmake-2.8.5.tar.gz -C /usr/local/src
- cd /usr/local/src
- cd cmake-2.8.5/
- ./configure
- make && make install
- cd /opt
- 3.编译安装mysql
- tar zxvf mysql-5.5.23.tar.gz -C /usr/local/src/
- cd /usr/local/src/mysql-5.5.23
- cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- -DMYSQL_DATADIR=/data/mysql \
- -DWITH_MYISAM_STORAGE_ENGINE=1 \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
- -DENABLED_LOCAL_INFILE=1 \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DEXTRA_CHARSETS=all
- make && make install
- groupadd -r -g 3306 mysql
- useradd -u 3306 -g mysql -r -M -s /sbin/nologin mysql
- mkdir -p /data/mysql/
- mkdir -p /data/log/
- chown -R mysql:mysql /data/
- chown -R mysql:mysql /usr/local/mysql/*
- cp support-files/my-huge.cnf /etc/my.cnf
- 4.初始化
- /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql & //初始化数据库
- 5.启动项
- cp support-files/mysql.server /etc/init.d/mysqld
- chmod +x /etc/init.d/mysqld
- /chkconfig --add mysqld
- chkconfig --level 2345 mysqld on
- service mysqld start
- netstat -tnlp |grep 3306
- 6.相关命令
- # cd /usr/local/bin //进入用户的默认搜索路径下建立mysql命令的软连接,可以直接执行mysql命令
- # ln -s /usr/local/mysql/bin/mysql mysql
- # ln -s /usr/local/mysql/bin/mysqldump mysqldump
- # ln -s /usr/local/mysql/bin/mysqladmin mysqladmin
- # ln -s /usr/local/mysql/bin/mysqlbinlog
- vim /etc/my.cnf ,在[mysqld]配置参数下面添加下面几行(大概37行下面),根据服务
- skip-external-locking
- key_buffer_size = 256M
- max_allowed_packet = 500M
- table_open_cache = 2048
- sort_buffer_size = 8M
- read_buffer_size = 4M
- read_rnd_buffer_size = 16M
- myisam_sort_buffer_size = 128M
- ###添加
- log-error=/data/log/mysql.err.log
- skip-name-resolv
- max_connections = 3000
- max_connect_errors = 2000
- slow_query_log
- long_query_time = 2
- slow_query_log_file = /data/log/slow.log
- bulk_insert_buffer_size = 64M
- query_cache_type = 1
- query_cache_size =256M
- query_cache_limit = 4M
- ft_min_word_len = 2
- join_buffer_size = 16M
- innodb_file_per_table
- log-bin-trust-function-creators=1
- myisam_repair_threads = 1
- innodb_log_files_in_group = 3
- thread_cache_size = 8
- # Try number of CPU's*2 for thread_concurrency
- thread_concurrency = 8
- innodb_buffer_pool_size = 2G //修改这个参数为物理内存的80%
- :wq //保存退出
- rm -rvf /data/mysql/ib* myslq-bin* //删除原来的默认文件
- service mysqld restart
- mysql -u root
- Mysql> grant all privileges on *.* to lqx@'%' identified by 'shlqx1!';
- Mysql>flush privileges;
|