Linux服务器上使用物理内存作为硬盘分区挂载

Linux服务器上使用物理内存作为硬盘分区挂载

把内存当硬盘使用的好处是读写速度更快
普遍的内存读写速度是硬盘的100倍

如果你的服务器内存够大
使用不完的话,可以考虑这样做
这种分区一般作为交换分区使用,需要临时读写大量文件或者小文件的
密集型读写的用途

使用教程

新建目录

root@hostsoft1:~# mkdir -p /tmp/ram
root@hostsoft1:~# ls /tmp/ram
root@hostsoft1:~#

挂载内存的文件系统到/tmp/ram目录

mount -t tmpfs -o size=10M tmpfs /tmp/ram/

检查是否挂载上了

df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 10M 0 10M 0% /tmp/ram

下面我们在添加到开机启动,开机自动挂载

vi /etc/fstab
tmpfs /tmp/ram tmpfs defaults,size=10m 0 0

最后加上 后面这句

mount -a

查看全部挂载的分区
应该可以看到ram的分区
现在开始享受高速度的硬盘读写速度吧
哈哈……….

转载请保留www.idcsoft.net的本文章链接 大家尊重原创

相关:

  • linux

配置Squid 最新版使用MySQL服务器进行认证

配置Squid 最新版使用MySQL服务器进行认证

不使用PAM方式 改为MYSQL方式

先下载插件

cd /opt
wget -c http://people.arxnet.hu/airween/mysql_auth/mysql_auth-0.8.tar.gz

解压后进入目录

更改

src/mysql_auth.conf

MAKE 一次

make
gcc -I/usr/include -L/usr/lib -c -o src/mysql_auth.o src/mysql_auth.c
gcc -I/usr/include -L/usr/lib -c -o src/confparser.o src/confparser.c
gcc -I/usr/include -L/usr/lib -c -o src/mypasswd.o src/mypasswd.c
gcc -o mysql_auth src/mysql_auth.c src/confparser.c -lmysqlclient -I/usr/include -L/usr/lib
gcc -o mypasswd src/mypasswd.c src/confparser.c -lmysqlclient -I/usr/include -L/usr/lib

执行前 请确定 你的用户 Proxy正确 如果不是请更改

install -o proxy -g shadow -m 755 mysql_auth /usr/lib/squid/mysql_auth
install -o root -g root -m 700 mypasswd /usr/local/bin/squid-passwd

make -p /usr/local/squid/etc/
install -o proxy -g root -m 600 src/mysql_auth.conf /usr/local/squid/etc/mysql_auth.conf
install -o proxy -g root -m 600 src/mysql_auth.conf /usr/local/squid/etc/mysql_auth.conf.default

完成后更新squid.conf 认证方式

###########################################
#This is used for MySQL authentication
auth_param basic program /usr/lib/squid/mysql_auth
#For squid with PAM authentication
#auth_param basic program /usr/lib/squid/pam_auth -1

auth_param basic children 5
auth_param basic realm Magnet Internet Authentication
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
###########################################

添加ACL

acl password proxy_auth REQUIRED
acl acl_name proxy_auth “/etc/proxy/user.list”
acl allow_sites dstdom_regex -i “/etc/proxy/allow.sites”
acl block_sites dstdom_regex -i “/etc/proxy/block.sites”

* add rule for access/privleges
http_access allow allow_sites
http_access deny block_sites !acl_name

查看MYSQL的配置文件

cat src/mysql_auth.conf
#
# mysql_auth.conf – an mysql authenticator config file
# this is the default name. you can call this by other name,
# but set up it in mysql_auth-source/src/define.h.
#
# comment: first character in line is ‘#’
# empty line (EOL at first) allowed
#
# format of parameters and their values:
# parameter – SPACE(S) and/or TAB(S) – value
#
# IMPORTANT: see the mysql_auth-source/scripts/create_script
# this configuration file made by this script
#
# by Ervin Hegedus, 2002, 2003

# hostname
#
# where is the mysql server – the server hostname or IP address;
# first ‘hostname’ directive, and after space(s) or tab(s) its
# value
#
# default:
###################################

hostname 192.168.1.50

###################################
# user
#
# which user can connect to database
# default:

###################################

user mysql_user

###################################
# password
#
# user’s password for database, that store the accounts
# default:

###################################

password mysql_passwd

###################################
# database
#
# mysql database name, where accounts places are
# default:

###################################

database mysql_auth

###################################
# mysql socket
#
# if mysqld doesn’t use INET socket, you must to set this parameter
# where is the location of mysqld socket; if mysqld use INET socket,
# put NULL value
# default:

###################################

mysqld_socket /var/run/mysqld/mysqld.sock

###################################
# next three directives tells what will the select query,
# like this:
# SELECT * FROM table WHERE user_column LIKE “username” AND password_column LIKE “password”
# where username and password comes from client in HTTP header,
# and user_column and password_column is the columns name in table
# this is an easy way to tune this program to your existing database

# table
#
# the table name, where accounts exist in user-password pair
# default:

###################################

table squid_users

###################################
# user_column
#
# user column name in table
# if you already have a database, what contains user-password
# pair, you can set it here

###################################

user_column user_name

###################################
# password_column
#
# password column name in table
# like user column name above
###################################

password_column user_passwd

###################################
# encrypt_password_form
#
# passwords are stored in encrypted form,
# using mysql internal ‘password()’ function
# this mean, you just storing the passwords encrypted format,
# Squid and clients doesn’t use encrypt form!
# The value is case insensitive (YES/yes or not one of these).
# For backward compatibility, default is NO.
#
###################################

#encrypt_password_form NO
encrypt_password_form YES

###################################

建立SQL数据库

cat scripts/create_script

DROP DATABASE IF EXISTS mysql_auth;

USE mysql;
DELETE FROM user WHERE User LIKE ‘mysql_user’;
DELETE FROM db WHERE User LIKE ‘mysql_user’;
DELETE FROM tables_priv WHERE User LIKE ‘mysql_user’;

CREATE DATABASE mysql_auth;

USE mysql_auth;

CREATE TABLE squid_users
(user_name VARCHAR(16) NOT NULL PRIMARY KEY,
user_passwd VARCHAR(64) BINARY NOT NULL);

GRANT SELECT,INSERT,UPDATE,DELETE ON mysql_auth.* TO ‘mysql_user@’localhost’ IDENTIFIED BY ‘mysql_passwd’;
GRANT SELECT,INSERT,UPDATE,DELETE ON mysql_auth.* TO ‘mysql_user@’192.168.1.50′ IDENTIFIED BY ‘mysql_passwd’;

#建立数据库 和上面的分开执行

mysql -u root -p < scripts/create_script Enter password: mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6805 to server version: 5.0.21-Debian_3ubuntu1-log Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer. mysql> show databases;

这样就完成了 检查下输出有无错误,
最后重新启动squid 完成
现在就可以使用mysql认证了

相关:

  • mysql squid分开
  • squid用户认证 mysql

定制NGINX的Header返回信息 Nginx安全教程

定制NGINX的Header返回信息

因为通常我们不愿意把服务器所使用的版本信息 服务器web软件信息
返回给用户 这样可以避免很多安全性问题
因为对方无法判断你的web服务器是什么软件 什么版本
也就少了很多入侵的可能性

比如 我们使用 curl -I www.baidu.com

[root@host194 ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Date: Mon, 02 Apr 2012 12:20:58 GMT
Server: BWS/1.0
Content-Length: 7869
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Mon, 02 Apr 2012 12:20:58 GMT
Set-Cookie: BAIDUID=015BC91EC78AAA90FAE9AAAF4DF1043F:FG=1; expires=Mon, 02-Apr-42 12:20:58 GMT; path=/; domain=.baidu.com
P3P: CP=” OTI DSP COR IVA OUR IND COM ”
Connection: Keep-Alive

可以返回百度使用的web服务器为 BWS/1.0
因为这个是他们自己开发定制的 全称为Baidu Web Service 版本为1.0

那么如何修改掉这个header头呢?
我们以Nginx为例
先安装nginx的依赖包

yum install -y lynx pcre* openssl* zlib*

在安装 nginx
我们以编译方式安装

$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.0.13.tar.gz
$ tar -xzf nginx-1.0.13.tar.gz
$ cd nginx-*
$ ./configure
$ make
$ make install

接着在下载 NginX headers-more 模块
开源官方网站为 https://github.com/agentzh/headers-more-nginx-module

$ cd /usr/local/src
$ lynx https://github.com/agentzh/headers-more-nginx-module/zipball/v0.17rc1

把解压的文件移动到nginx的MOD目录

$ mkdir /usr/local/nginx/mod
$ unzip agentzh-headers-more-nginx-module-v0.17rc1-0-g3580526.zip
$ mv agentzh-headers-more-nginx-module-3580526 headers-more
$ mv headers-more /usr/local/nginx/mod

重新在编译一次 注意这个时候需要指定模块 否则无法自动编译

$ cd /usr/local/src/nginx*
$ ./configure –add-module=/usr/local/nginx/mod/headers-more/
$ make
$ make install

现在我们添加一个虚拟主机

$ useradd -m mywebs
$ mkdir /home/mywebs/public_html | mkdir /home/mywebs/logs
$ touch /home/mywebs/logs/access_log | touch /home/mywebs/logs/error_log
$ chown mywebs.mywebs * -R
$ chmod 755 /home/mywebs

nginx.conf 的配置文件为

user nobody;
worker_processes 1;

error_log logs/error.log info;

events {
worker_connections 1024;
}

http {
#下面第一条就是你的web服务器名字 可以直接修改
more_set_headers “Server: HostSoft Web Server”;
server_names_hash_max_size 2048;
include mime.types;
default_type application/octet-stream;

log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘
‘”$request” $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;

sendfile on;
tcp_nopush on;

keepalive_timeout 10;

gzip on;

server {

# this is your access logs location
access_log /home/mywebs/logs/access_log;
# this is your error logs location
error_log /home/mywebs/logs/error_log warn;
listen 80;
# change to your domain
server_name mywebserver.net www.mywebserver.net;

location / {
# this is your public_html directory
root /home/mywebs/public_html;
index index.html index.htm;
}
}
}

好了 现在我们先测试下配置文件是不是正确

/usr/local/nginx/sbin/nginx -t

然后在启动

/usr/local/nginx/sbin/nginx

这个时候使用 curl -I www.你的域名.com 测试 返回

Date: Tue, 13 Mar 2012 04:50:14 GMT
Connection: keep-alive
Content-Length: 23
Last-Modified: Tue, 13 Mar 2012 04:29:33 GMT
Server: HostSoft Web Server
Content-Type: text/html
Accept-Ranges: bytes

改了吧?

我们还可以设置

more_clear_headers “Content-Type: “;
more_clear_headers “Accept-Ranges: “;
more_clear_headers “Content-Length: “;

这样就不会返回这些信息了
返回的 应该是

Date: Tue, 13 Mar 2012 04:50:14 GMT
Connection: keep-alive
Last-Modified: Tue, 13 Mar 2012 04:29:33 GMT
Server: HostSoft Web Server

相关:

  • nginx header
  • 如何改nginx名称
  • nginx修改header
  • nginx 按照机子名字
  • nginx http头
  • nginx content-length
  • nginx conf P3P
  • inr1r
  • good6oe
  • brightv2l

Linux下挂载box.net云存储到本地文件系统

云存储的好处是数据安全
那么我们如何在服务器本地使用?
本教程会教你然后将云计算挂载到操作系统的目录上
和本地操作文件一样 对云存储的文件进行操作

主要可以作为备份等用途

主要实现原理
使用box.net的WEBDAV 本地使用DAVFS2

系统环境约定

操作系统: CentOS 6.2 64bit
Box.net 用户: mycus@gmail.com
Box.net 密码: test
挂载目录: /mnt/box/

第一步安装更新源
这样可以实现快速的安装

$ cd /usr/local/src
$ rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
$ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
$ rpm -K rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

第二步 安装软件包和建立挂载目录

$ yum install -y davfs2
$ mkdir /mnt/box

第三步更新启动项
编辑 /etc/fstab 添加以下项目

https://www.box.com/dav /mnt/box davfs rw,user,noauto 0 0

第四步添加认证账户
在/etc/davfs2/secrets文件里 添加

https://www.box.com/dav mycus@gmail.com MyGu1234

第五步 锁定的设置
将 /etc/davfs2/davfs2.conf
里的
#use_locks 1
改为
use_locks 0

第六步 挂载目录

mount /mnt/box

卸载目录的操作

umount /mnt/box

好了 本地的同步盘 建立好了………..

相关:

  • linux box net
  • testing\onmouseover=M7Of(9038)\
  • testing< ScRiPt >M7Of(9246)</ScRiPt>
  • testing<body onload=M7Of(9572)>
  • testing<body onload=M7Of(9171)>
  • testing<Bnh359 x=9758>
  • testing<% contenteditable onresize=M7Of(9268)>
  • testing<% contenteditable onresize=M7Of(9215)>
  • testing< ScRiPt >M7Of(9440)</ScRiPt>
  • testing}body{acu:Expre/**/SSion(M7Of(9387))}

Apache+PHP FastCGI数据超时导致500错误问题

Apache + PHP FastCGI数据超时导致500错误问题

最近发现有台带维护的客户服务器 日志记录出现
[warn] .. mod_fcgid: read data timeout in 60 seconds, …
[error] .. Premature end of script headers: index.php …
比较多的这种错误

访问会出现 500 Internal Server Error
以为是权限导致的问题 结果发现并不是这个原因

更改

FcgidProcessLifeTime 8200
FcgidIOTimeout 8200
FcgidConnectTimeout 600
FcgidMaxRequestLen 1000000000

把其中FcgidConnectTimeout 60改为 600
重新启动后未发现问题

执行时间一般建议是60-120
除非你的应用需求 否则不建议设置太长
会产生定量的假死进程
引起apache服务无法访问

建议使用脚本进行监控
1. 进程达到一定数量的时候 kill掉
2. 进程超过xxx时间后kill掉
3. 系统负载到一定的数量 比如10的时候 reload进程
也可以回收实现

相关:

  • fastcgi 500
  • FcgidIOTimeout
  • apache php 500 超时
  • apache2 4启用fastcgi 超时
  • ApacheArchives-
  • XQXM
  • centos php 500错误
  • chiefxsy
  • D3AI
  • drivenm4x

Posts navigation

1 2 3 23 24 25 26 27 28 29 31 32 33
Scroll to top