- chmod +x /opt/init_system.sh
- /opt/init_system.sh
二、更新组件- cd /etc/yum.repos.d/
- mv CentOS-Base.repo CentOS-Base.repo.backup
- wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
- yum makecache
- yum -y install gcc gcc-c++ bison patch unzip mlocate flex wget automake autoconf gd cpp gettext readline-devel libjpeg \
- libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 \
- glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel libidn libidn-devel openldap \
- openldap-devel openldap-clients openldap-servers nss_ldap expat-devel libtool libtool-ltdl-devel bison
三、LANMP安装配置(nginx、apache整合)- cd /opt
- tar -zxvf libunwind-1.0.1.tar.gz
- cd libunwind-1.0.1
- ./configure
- make;make install
- cd ../
-
- tar -zxvf gperftools-2.0.tar.gz
- cd gperftools-2.0
- ./configure
- make;make install
-
- echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
- /sbin/ldconfig
- cd ../
-
- tar -zxvf cmake-2.8.8.tar.gz
- cd cmake-2.8.8
- ./bootstrap
- gmake
- gmake install
- cd ../
-
- /usr/sbin/groupadd mysql
- /usr/sbin/useradd -g mysql mysql -s /sbin/nologin
- mkdir -p /data/mysql/{data,binlog,relaylog,mysql}
- chown -R mysql:mysql /data/mysql
- cd /opt
- tar zxvf mysql-5.5.23.tar.gz
- cd mysql-5.5.23/
- rm -rf CMakeCache.txt
- cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DEXTRA_CHARSETS=all \
- -DWITH_MYISAM_STORAGE_ENGINE=1 \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_READLINE=1 \
- -DENABLED_LOCAL_INFILE=1 \
- -DMYSQL_DATADIR=/data/mysql/data \
- -DMYSQL_TCP_PORT=3306
- make;make install
- chmod +w /usr/local/mysql
- chown -R mysql:mysql /usr/local/mysql
- ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
#编辑mysql配置文件
- cat >> /etc/my.cnf <<EOF
- [client]
- port = 3306
- socket = /data/mysql/mysql.sock
-
- [mysqld]
- character_set_server = utf8
- collation-server = utf8_general_ci
- replicate-ignore-db = mysql
- replicate-ignore-db = test
- replicate-ignore-db = information_schema
- user = mysql
- port = 3306
- socket = /data/mysql/mysql.sock
- basedir = /usr/local/mysql
- datadir = /data/mysql/data
- log-error = /data/mysql/mysql_error.log
- pid-file = /data/mysql/mysql.pid
- open_files_limit = 10240
- back_log = 600
- max_connections = 5000
- max_connect_errors = 6000
- table_cache = 512
- external-locking = FALSE
- max_allowed_packet = 32M
- sort_buffer_size = 6M
- join_buffer_size = 8M
- thread_cache_size = 300
- thread_concurrency = 8
- query_cache_size = 512M
- query_cache_limit = 2M
- query_cache_min_res_unit = 2k
- default-storage-engine = MyISAM
- thread_stack = 256K
- transaction_isolation = READ-COMMITTED
- tmp_table_size = 256M
- max_heap_table_size = 256M
- long_query_time = 3
- log-slave-updates
- log-bin = /data/mysql/binlog/binlog
- binlog_cache_size = 4M
- binlog_format = MIXED
- max_binlog_cache_size = 8M
- max_binlog_size = 100M
- relay-log-index = /data/mysql/relaylog/relaylog
- relay-log-info-file = /data/mysql/relaylog/relaylog
- relay-log = /data/mysql/relaylog/relaylog
- expire_logs_days = 30
- key_buffer_size = 384M
- read_buffer_size = 4M
- read_rnd_buffer_size = 16M
- bulk_insert_buffer_size = 64M
- myisam_sort_buffer_size = 128M
- myisam_max_sort_file_size = 10G
- myisam_repair_threads = 1
- myisam_recover
-
- interactive_timeout = 120
- wait_timeout = 120
-
- skip_external_locking
- skip-name-resolve
- #master-connect-retry = 10
- slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
-
- #master-host = 192.168.1.2
- #master-user = username
- #master-password = password
- #master-port = 3306
-
- server-id = 1
-
- skip-innodb
-
- #log-slow-queries = /data/mysql/slow.log
- #long_query_time = 10
-
- [mysqldump]
- quick
- max_allowed_packet = 32M
- EOF
#初始化mysql
- /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=mysql
#利用TCMalloc提高mysql在高并发下的性能
#设置mysql开机启动- /usr/sbin/groupadd www
- /usr/sbin/useradd -g www www -s /sbin/nologin
- mkdir -p /data/www/{kerry,king}
- mkdir -p /data/logs/{kerry,king}
- chown -R www:www /data/www
- chown -R www:www /data/logs
- cd /opt
-
- wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz
- rpm -e libtool-1.5.22-7.el5_4
- tar -zxvf libtool-2.4.2.tar.gz
- cd libtool-2.4.2
- ./configure
- make;make install
-
- tar -jxvf pcre-8.30.tar.bz2
- cd pcre-8.30
- ./configure --prefix=/usr/local/pcre
- make;make install
- cd ../
-
- tar -jxvf httpd-2.4.2.tar.bz2
- tar -jxvf httpd-2.4.2-deps.tar.bz2
- cd httpd-2.4.2
#隐藏apache版本信息
- sed -i 's/#define AP_SERVER_BASEPRODUCT "Apache"/#define AP_SERVER_BASEPRODUCT "Microsoft-IIS 5.0"/' include/ap_release.h
- sed -i 's/#define PLATFORM "Unix"/#define PLATFORM "win32"/' os/unix/os.h
- ./configure --prefix=/usr/local/apache \
- --enable-deflate \
- --enable-headers \
- --enable-mime-magic \
- --enable-proxy \
- --enable-ssl \
- --enable-so \
- --enable-rewrite \
- --enable-suexec \
- --with-suexec-bin=/usr/sbin/suexec \
- --with-suexec-caller=www \
- --with-pcre=/usr/local/pcre/bin/pcre-config \
- --with-mpm=prefork \
- --with-ssl=/usr
-
- make;make install
#make的时候报错,“/usr/lib/libexpat.so: could not read symbols: File in wrong format”- sed -i '/#!\/bin\/sh/a\# chkconfig: - 85 15\n# description: web server\n# processname: httpd\n# pidfile: /usr/local/apache/logs/httpd.pid\n# config: /usr/local/apache/conf/httpd.conf' /etc/init.d/httpd
#修改apache配置文件- cat >> httpd.conf <<EOF
- ServerRoot "/usr/local/apache"
- Listen 80
- Timeout 300
- KeepAlive Off
- MaxKeepAliveRequests 100
- KeepAliveTimeout 5
- UseCanonicalName Off
- AccessFileName .htaccess
- TraceEnable Off
- ServerTokens ProductOnly
- FileETag None
- ServerSignature Off
- HostnameLookups Off
-
- # LoadModule foo_module modules/mod_foo.so
- #
- LoadModule authn_file_module modules/mod_authn_file.so
- #LoadModule authn_dbm_module modules/mod_authn_dbm.so
- #LoadModule authn_anon_module modules/mod_authn_anon.so
- #LoadModule authn_dbd_module modules/mod_authn_dbd.so
- #LoadModule authn_socache_module modules/mod_authn_socache.so
- LoadModule authn_core_module modules/mod_authn_core.so
- LoadModule authz_host_module modules/mod_authz_host.so
- LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
- LoadModule authz_user_module modules/mod_authz_user.so
- #LoadModule authz_dbm_module modules/mod_authz_dbm.so
- #LoadModule authz_owner_module modules/mod_authz_owner.so
- #LoadModule authz_dbd_module modules/mod_authz_dbd.so
- LoadModule authz_core_module modules/mod_authz_core.so
- LoadModule access_compat_module modules/mod_access_compat.so
- LoadModule auth_basic_module modules/mod_auth_basic.so
- #LoadModule auth_form_module modules/mod_auth_form.so
- #LoadModule auth_digest_module modules/mod_auth_digest.so
- #LoadModule allowmethods_module modules/mod_allowmethods.so
- #LoadModule file_cache_module modules/mod_file_cache.so
- #LoadModule cache_module modules/mod_cache.so
- #LoadModule cache_disk_module modules/mod_cache_disk.so
- #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
- #LoadModule socache_dbm_module modules/mod_socache_dbm.so
- #LoadModule socache_memcache_module modules/mod_socache_memcache.so
- #LoadModule dbd_module modules/mod_dbd.so
- #LoadModule dumpio_module modules/mod_dumpio.so
- #LoadModule buffer_module modules/mod_buffer.so
- #LoadModule ratelimit_module modules/mod_ratelimit.so
- LoadModule reqtimeout_module modules/mod_reqtimeout.so
- #LoadModule ext_filter_module modules/mod_ext_filter.so
- #LoadModule request_module modules/mod_request.so
- #LoadModule include_module modules/mod_include.so
- LoadModule filter_module modules/mod_filter.so
- #LoadModule substitute_module modules/mod_substitute.so
- #LoadModule sed_module modules/mod_sed.so
- #LoadModule deflate_module modules/mod_deflate.so
- LoadModule mime_module modules/mod_mime.so
- LoadModule log_config_module modules/mod_log_config.so
- #LoadModule log_debug_module modules/mod_log_debug.so
- #LoadModule logio_module modules/mod_logio.so
- LoadModule env_module modules/mod_env.so
- #LoadModule mime_magic_module modules/mod_mime_magic.so
- #LoadModule expires_module modules/mod_expires.so
- LoadModule headers_module modules/mod_headers.so
- #LoadModule unique_id_module modules/mod_unique_id.so
- LoadModule setenvif_module modules/mod_setenvif.so
- LoadModule version_module modules/mod_version.so
- #LoadModule remoteip_module modules/mod_remoteip.so
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_connect_module modules/mod_proxy_connect.so
- LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
- LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
- #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
- LoadModule proxy_express_module modules/mod_proxy_express.so
- #LoadModule session_module modules/mod_session.so
- #LoadModule session_cookie_module modules/mod_session_cookie.so
- #LoadModule session_dbd_module modules/mod_session_dbd.so
- #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
- #LoadModule ssl_module modules/mod_ssl.so
- LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
- LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
- LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
- LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
- LoadModule unixd_module modules/mod_unixd.so
- #LoadModule dav_module modules/mod_dav.so
- LoadModule status_module modules/mod_status.so
- LoadModule autoindex_module modules/mod_autoindex.so
- #LoadModule info_module modules/mod_info.so
- #LoadModule suexec_module modules/mod_suexec.so
- #LoadModule cgi_module modules/mod_cgi.so
- #LoadModule dav_fs_module modules/mod_dav_fs.so
- LoadModule vhost_alias_module modules/mod_vhost_alias.so
- #LoadModule negotiation_module modules/mod_negotiation.so
- LoadModule dir_module modules/mod_dir.so
- #LoadModule actions_module modules/mod_actions.so
- #LoadModule speling_module modules/mod_speling.so
- #LoadModule userdir_module modules/mod_userdir.so
- LoadModule alias_module modules/mod_alias.so
- LoadModule rewrite_module modules/mod_rewrite.so
-
- <IfModule unixd_module>
- User www
- Group www
- </IfModule>
-
- ServerAdmin king_819@163.com
- <Directory />
- AllowOverride none
- Require all denied
- </Directory>
-
- DocumentRoot "/usr/local/apache/htdocs"
- <Directory "/usr/local/apache/htdocs">
- Options Indexes FollowSymLinks
- AllowOverride None
- Require all granted
- </Directory>
-
- <IfModule dir_module>
- DirectoryIndex index.html index.php
- </IfModule>
-
- <Files ".ht*">
- Require all denied
- </Files>
-
- ErrorLog "logs/error_log"
- LogLevel warn
-
- <IfModule log_config_module>
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
- LogFormat "%h %l %u %t \"%r\" %>s %b" common
-
- <IfModule logio_module>
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
- </IfModule>
-
- CustomLog "logs/access_log" common
- </IfModule>
-
- <IfModule alias_module>
- ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
-
- </IfModule>
-
- <IfModule cgid_module>
- #Scriptsock logs/cgisock
- </IfModule>
-
- <Directory "/usr/local/apache/cgi-bin">
- AllowOverride None
- Options None
- Require all granted
- </Directory>
-
- RewriteEngine on
- <IfModule mime_module>
- TypesConfig conf/mime.types
- AddType application/x-compress .Z
- AddType application/x-gzip .gz .tgz
- AddType application/x-httpd-php .php .php3 .php4 .php5 .php6
- AddType application/x-httpd-php-source .phps
- </IfModule>
-
- # Server-pool management (MPM specific)
- Include conf/extra/httpd-mpm.conf
-
- # Virtual hosts
- Include conf/extra/httpd-vhosts.conf
-
- # Configure mod_proxy_html to understand HTML4/XHTML1
- <IfModule proxy_html_module>
- Include conf/extra/proxy-html.conf
- </IfModule>
-
- # Secure (SSL/TLS) connections
- #Include conf/extra/httpd-ssl.conf
-
- <IfModule ssl_module>
- SSLRandomSeed startup builtin
- SSLRandomSeed connect builtin
- </IfModule>
- EOF
#配置mpm_prefork_module- cat >> extra/httpd-mpm.conf <<EOF
- <IfModule mpm_prefork_module>
- ServerLimit 10000
- StartServers 5
- MinSpareServers 5
- MaxSpareServers 10
- MaxRequestWorkers 10000
- MaxConnectionsPerChild 10000
- </IfModule>
- EOF
#配置虚拟主机(apache虚拟主机,通过IP访问默认会访问到第一个虚拟主机上,那么就第一个虚拟主机定义为127.0.0.1,目录指到/usr/local/apache/htdocs)- cat >> extra/httpd-vhosts.conf <<EOF
- #Vhosts
- <VirtualHost *:81>
- ServerAdmin king_819@163.com
- DocumentRoot "/usr/local/apache/htdocs"
- <Directory "/usr/local/apache/htdocs">
- Options Indexes FollowSymLinks
- AllowOverride None
- Require all granted
- </Directory>
- ServerName 127.0.0.1
- </VirtualHost>
- <VirtualHost *:81>
- ServerAdmin king_819@163.com
- DocumentRoot "/data/www/kerry"
- <Directory "/data/www/kerry">
- Options Indexes FollowSymLinks
- AllowOverride None
- Require all granted
- </Directory>
- ServerName www.kerry.com
- ErrorLog "logs/kerry-error_log"
- CustomLog "|/usr/local/apache/bin/rotatelogs /data/logs/kerry/%y_%m_%d.access_log 86400" common
- </VirtualHost>
- <VirtualHost *:81>
- ServerAdmin king_819@163.com
- DocumentRoot "/data/www/king"
- <Directory "/data/www/king">
- Options Indexes FollowSymLinks
- AllowOverride None
- Require all granted
- </Directory>
- ServerName www.king.com
- ErrorLog "logs/king-error_log"
- CustomLog "|/usr/local/apache/bin/rotatelogs /data/logs/king/%y_%m_%d.access_log 86400" common
- </VirtualHost>
- EOF
#设置apache自启动
- sed -i 's#zend_list_insert(mmc, le_memcache_server);#zend_list_insert(mmc TSRMLS_CC, le_memcache_server);#' memcache.c
- sed -i 's#list_id = zend_list_insert(pool, le_memcache_pool);#list_id = zend_list_insert(pool TSRMLS_CC, le_memcache_pool);#' memcache.c
#php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmemcached
#安装memcached的服务端支持库- sed -i 's#; extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20100525/"\nextension = "memcache.so"\nextension = "pdo_mysql.so"\nextension = "memcached.so"\nextension = "imagick.so"\n#' /usr/local/php/etc/php.ini
- cat >> /usr/local/php/etc/php.ini <<EOF
- [xcache-common]
- extension = xcache.so
-
- [xcache]
- xcache.shm_scheme = "mmap"
- xcache.size = 256M
- xcache.count = 8
- xcache.slots = 8K
- xcache.ttl = 0
- xcache.gc_interval = 0
-
- xcache.var_size = 8M
- xcache.var_count = 8
- xcache.var_slots = 8K
- xcache.var_ttl = 0
- xcache.var_maxttl = 0
- xcache.var_gc_interval = 300
-
- xcache.test = Off
- xcache.readonly_protection = Off
- xcache.mmap_path = "/dev/zero"
-
- xcache.coredump_directory = ""
-
- xcache.cacher = On
- xcache.stat = On
- xcache.optimizer = Off
-
- [xcache.coverager]
- xcache.coverager = Off
-
- xcache.coveragedump_directory = ""
- EOF
#隐藏php版本- cat >> /etc/init.d/nginx <<EOF
- #! /bin/sh
- ulimit -n 65535
- # Description: Startup script for nginx
- # chkconfig: 2345 55 25
-
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- DESC="nginx daemon"
- NAME=nginx
- DAEMON=/usr/local/nginx/sbin/$NAME
- CONFIGFILE=/usr/local/nginx/conf/nginx.conf
- PIDFILE=/usr/local/nginx/logs/$NAME.pid
- SCRIPTNAME=/etc/init.d/$NAME
-
- set -e
- [ -x "$DAEMON" ] || exit 0
-
- do_start() {
- $DAEMON -c $CONFIGFILE || echo -n "nginx already running"
- }
-
- do_stop() {
- kill -QUIT `cat $PIDFILE` || echo -n "nginx not running"
- }
-
- do_reload() {
- kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"
- }
-
- case "$1" in
- start)
- echo -n "Starting $DESC: $NAME"
- do_start
- echo "."
- /etc/init.d/httpd start
- ;;
- stop)
- echo -n "Stopping $DESC: $NAME"
- do_stop
- echo "."
- /etc/init.d/httpd stop
- ;;
- reload)
- echo -n "Reloading $DESC configuration..."
- do_reload
- echo "."
- /etc/init.d/httpd restart
- ;;
- restart)
- echo -n "Restarting $DESC: $NAME"
- do_stop
- sleep 1
- do_start
- echo "."
- /etc/init.d/httpd restart
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
- exit 3
- ;;
- esac
-
- exit 0
- EOF
#添加nginx配置文件- cat >> /usr/local/nginx/conf/nginx.conf <<EOF
- user www www;
- worker_processes 8;
- error_log /usr/local/nginx/logs/nginx_error.log crit;
- pid /usr/local/nginx/logs/nginx.pid;
- #使用Tcmalloc优化nginx性能
- google_perftools_profiles /var/tmp/tcmalloc;
- #Specifies the value for maximum file descriptors that can be opened by this process.
- worker_rlimit_nofile 65535;
- #工作模式及连接数上限
- events
- {
- use epoll;
- worker_connections 65535;
- }
- #设定http服务器,利用它的反向代理功能提供负载均衡支持
- http
- {
- #设定mime类型
- include mime.types;
- default_type application/octet-stream;
- #charset gb2312;
- #设定请求缓冲
- server_names_hash_bucket_size 128;
- client_header_buffer_size 32k;
- large_client_header_buffers 4 32k;
- client_max_body_size 30m;
- sendfile on;
- tcp_nopush on;
- keepalive_timeout 60;
- tcp_nodelay on;
- server_tokens off;
- client_body_buffer_size 512k;
- proxy_connect_timeout 5;
- proxy_send_timeout 60;
- proxy_read_timeout 5;
- proxy_buffer_size 16k;
- proxy_buffers 4 64k;
- proxy_busy_buffers_size 128k;
- proxy_temp_file_write_size 128k;
- # fastcgi_connect_timeout 300;
- # fastcgi_send_timeout 300;
- # fastcgi_read_timeout 300;
- # fastcgi_buffer_size 64k;
- # fastcgi_buffers 4 64k;
- # fastcgi_busy_buffers_size 128k;
- # fastcgi_temp_file_write_size 128k;
- 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_vary on;
-
- #limit_zone crawler $binary_remote_addr 10m;
- #定义访问日志的写入格式
- log_format wwwlog '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" $http_x_forwarded_for';
- log_format bbslog '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" $http_x_forwarded_for';
-
- ###禁止通过ip访问站点
- server{
- server_name _;
- return 404;
- }
- server
- {
- listen 80;
- server_name www.kerry.com;
- index index.html index.htm index.php;#设定访问的默认首页地址
- root /data/www/kerry;#设定网站的资源存放路径
- #limit_conn crawler 20;
- if (-d $request_filename)
- {
- rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
- }
- #所有jsp的页面均交由tomcat处理
- location ~ \.(php)?$ {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http://127.0.0.1:81;#转向tomcat处理
- }
- location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ #设定访问静态文件直接读取不经过apache
- {
- expires 30d;
- }
- location ~ .*\.(js|css)?$
- {
- expires 1h;
- }
- access_log /data/logs/kerry/kerry_nginx.log wwwlog;#设定访问日志的存放路径
- }
- server
- {
- listen 80;
- server_name www.king.com;
- index index.html index.htm index.php;#设定访问的默认首页地址
- root /data/www/king;#设定网站的资源存放路径
- #limit_conn crawler 20;
- if (-d $request_filename)
- {
- rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
- }
- #所有jsp的页面均交由tomcat处理
- location ~ \.(php)?$ {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_pass http://127.0.0.1:81;#转向tomcat处理
- }
- location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ #设定访问静态文件直接读取不经过apache
- {
- expires 30d;
- }
- location ~ .*\.(js|css)?$
- {
- expires 1h;
- }
- access_log /data/logs/king/king_nginx.log bbslog;#设定访问日志的存放路径
- }
- server
- {
- listen 80;
- server_name status.www.kerry.com;
- location / {
- stub_status on;
- access_log off;
- }
- }
- }
- EOF
#将nginx添加到启动服务中- cat >>/usr/local/nginx/sbin/cut_nginx_log.sh<< EOF
- #!/bin/bash
- # This script run at 00:00
- # The Nginx logs path
- logs_path_kerry="/data/logs/kerry/"
- logs_path_kerry="/data/logs/king/"
- mv ${logs_path_kerry}kerry_nginx.log ${logs_path_kerry}$kerry_nginx_$(date -d "yesterday" +"%Y%m%d").log
- mv ${logs_path_king}king_nginx.log ${logs_path_king}king_nginx_$(date -d "yesterday" +"%Y%m%d").log
- kill -USR1 `cat /usr/local/nginx/nginx.pid`
- EOF
chmod +x /usr/local/nginx/sbin/cut_nginx_log.sh
#解决办法:
- LoadModule rpaf_module modules/mod_rpaf-2.0.so
- #Mod_rpaf settings
- RPAFenable On
- #上面出现的192.168.9.9请修改为你本机所监听web服务的ip.多个IP用空格空开
- RPAFproxy_ips 127.0.0.1 192.168.9.9
- RPAFsethostname On
- RPAFheader X-Forwarded-For
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道rubyonrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(
我的项目布局如下:-Project-css-import.scss-_sass/main.scssimport.scss的内容是:------@import"main.scss";我期望发生的是将main.scss导入到import.scss中,然后,import.scss将在生成的_site/目录中编译为import.css。相反,我收到以下错误Conversionerror:Therewasanerrorconverting'css/import.scss'.jekyll2.0.3|Error:InvalidCSSafter"-":expectednumberorfunction,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我想在AmazonOpsWorks上使用Ruby2.0,所以我正在尝试以下操作:选择自定义Recipe并将它们设置到我的forkhttps://github.com/aws/opsworks-cookbooks在此处更新所有版本号https://github.com/aws/opsworks-cookbooks/blob/master/ruby/attributes/ruby.rb到2.0值。虽然这似乎没有任何效果。自定义说明书是否会覆盖其内置的说明书?OpsWorks是否使用Recipe中的Ruby配方来进行基本的Ruby设置?同样的问题也适用于Nginx-我可以通过更改Recipe
我们将我们的应用程序从Rails4.1.14升级到4.2.5.1并遇到了以下问题:string="SomeString"ar_model=SomeArModel.newar_model.some_attribute=string#nextlineistruefor4.1,butfailsfor4.2ar_model.some_attribute.object_id==string.object_id显然,对象setter会复制每个对象(如果我有一个数组,里面的每个对象也会被复制),我想知道,这是不是有意为之并且是某些新安全功能的一部分?更新我将ruby-2.2.2p95用于两个ra
我正在尝试将Ruby1.9.3应用程序升级到2.0,除了一个小问题外,一切似乎都很顺利。我写了一个模块,我将其包含在我的模型中以覆盖activerecorddestroy。它将现有的destroy方法别名为destroy!,然后覆盖destroy以更改记录上的deleted_at时间戳。仅当我升级到ruby2.0时,destroy!不再破坏记录,但其行为就像我的新覆盖方法一样。知道为什么会这样吗?下面是更相关的代码部分。完整要点here.defself.included(base)base.class_evaldoalias_method:destroy!,:destroyalia