分类 Linux 下的文章

nginx里面codeigniter的重写规则

有下面几种方法

一、使用QUERY_STRING,这个最简单了,nginx里面配置少,性能也应该最好

修改codeinniter里面的application/config/config.php文件,改为如下:

$config['uri_protocol'] = 'QUERY_STRING';

nginx里面这样配置一下就行了

if  (!-f $request_filename) {
rewrite (.+) /index.php?$1 last;
}

二、使用PATH_INFO,由于nginx里面默认是不识别PATH_INFO这个php变量的,它会把PATH_INFO作为一个路径,这样就出现了404错误

修改codeinniter里面的application/config/config.php文件,改为如下:

$config['uri_protocol'] = 'PATH_INFO';

nginx里面加两段代码:

location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
#下面3行让nginx正确识别文件路径和PATH_INFO
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
}

if  (!-f $request_filename) {
rewrite (.+) /index.php$1 last;
}

三、使用REQUEST_URI,这个个人觉得没有使用QUERY_STRING来的方便,不利于二次URL重写,毕竟某些时候你想把CodeIgniter默认重写的URL再次重写为比较短点的,这个时候你就必须用CI的config里面enable_query_strings这个地方配置的查询字符串来rewrite了,感觉有点麻烦,如果你不用二次重写,使用这个方法也很简单的。

修改codeinniter里面的application/config/config.php文件,改为如下:

$config['uri_protocol'] = 'REQUEST_URI';

nginx里面这样配置一下就行了

if  (!-f $request_filename) {
rewrite .+ /index.php last;
}

[vps性能优化] centos安装后的几点优化

1. 解决使用putty远程访问centos出现乱码的问题
编辑vi /etc/sysconfig/i18n这个文件,不管你装的是中文版,还是英文版.删掉原来的配置,把下面的拷贝过去
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
注:I18N 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”。
I18N支持多种语言,但是同一时间只能是英文和一种选定的语言,例如英文中文、英文 德文、英文 韩文等等。

2. 检查系统是否正常 
# more /var/log/messages (检查有无系统内核级错误信息)
# dmesg (检查硬件设备是否有错误信息)
# ifconfig(检查网卡设置是否正确)
# ping qq.com (检查网络是否正常,dns是否配置正确cat etc/resolv.conf)
关闭不需要的服务
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律关闭:
crond (计划调度工具)
irqbalance (仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。)
microcode_ctl (cpu的系统)
network (网络服务)
iptables (系统自带的防火墙)
sshd (远程访问服务)
syslog (系统登录)

3. 配置yum
更换yum的升级列表
cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5
mv CentOS-Base.repo.5 CentOS-Base.repo

4. 更新所有系统中的程序,包括内核
# yum upgrade

(yum update 排除升级内核,方法有两个:)
1.修改yum的配置文件 vi /etc/yum.conf,
在[main]的最后添加exclude=kernel*
2.直接在yum的命令行执行如下的命令:
yum --exclude=kernel* update

5. 定时校正服务器时间 
# yum install ntp
# crontab -e
加入一行:
*/15 * * * * ntpdate 210.72.145.44
## 210.72.145.44 为中国国家授时中心服务器地址。

6. 停止网卡对ipv6的支持
#vi /etc/modprobe.conf ← 修改相应配置文件,添加如下行到文尾:
alias net-pf-10 off
alias ipv6 off
上述操作重启后生效

7. 让系统运行在init 3的模式下
#vi /etc/inittab
###表示当前缺省运行级别为5(initdefault);
id:5:initdefault: ← 将此处的5修改为3。

8. 使用 yum 程序安装所需开发包
(以下为标准的 RPM 包名称)
yum -y install gcc gcc-c++ autoconf 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 krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

9. Linux SSH 安全策略二:更改 SSH 端口
默认的 SSH 端口是 22。强烈建议改成 10000 以上。这样别人扫描到端口的机率也大大下降。修改方法:
# 编辑 /etc/ssh/ssh_config
vi /etc/ssh/ssh_config
# 在 Host * 下 ,加入新的 Port 值。以 18439 为例(下同):
Port 22
Port 18439
# 编辑 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#加入新的 Port 值
Port 22
Port 18439
# 保存后,重启 SSH 服务:
service sshd restart
这里我设置了两个端口,主要是为了防止修改出错导致 SSH 再也登不上。
更改你的 SSH 客户端(例如:Putty)的连接端口,测试连接,如果新端口能连接成功,则再编辑上面两个文件,删除 Port 22 的配置。
如果连接失败,而用 Port 22 连接后再重新配置。
端口设置成功后,注意同时应该从 iptables 中, 删除22端口,添加新配置的 18439,并重启 iptables。
如果 SSH 登录密码是弱密码,应该设置一个复杂的密码。

Linux 分区指南 :Ubuntu Server 最佳方案

1.1 Linux 文件系统结构介绍

Linux 操作系统有一些固定的目录。各种Linux 发行版的目录结构虽然不会一模一样,但是不会有很大差异。知道了这些目录的作用,不仅对你进行磁盘分区规划很有帮助,而且会让你以后的日常维护工作变得轻松。

- 阅读剩余部分 -