您的位置:首页 > 运维架构 > Linux

个人Linux学习笔记(三)

2015-10-08 15:12 417 查看

利用Nginx实现lb集群

安装epel扩展包

yum install -y epel-release


yum安装Nginx

yum install -y nginx


创建虚拟主机配置文件目录

mkdir -p /etc/nginx/vhosts


创建lb配置文件

vim /etc/nginx/vhosts/lb.conf


新增以下内容

upstream abc.com{
server 192.168.200.128;
server 192.168.200.129;
}
server{
listen 80;
server_name www.abc.com;
location / {
proxy_pass   http://abc.com/; proxy_set_header Host $host;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


修改ngix主配置文件

vim /etc/nginx/nginx.conf


在include /etc/nginx/conf.d/*.conf;下面新增以下内容

include vhosts/*.conf;


检测nginx配置是否正确

nginx -t


启动nginx服务

/etc/init.d/nginx start


查看nginx是否启动

ps aux | grep nginx


测试访问nginx负载

curl -xlocalhost:80 http://www.abc.com/1.html[/code] 

Linux运维安全

使用一台服务器作为跳板机来登陆其他服务器,其他服务器统一做IP限制(/etc/hosts.allow,/etc/hosts.deny)

尽量使用密钥,避免使用密码登陆服务器(PermitRootLogin without-password)

禁止root直接登陆服务器,只允许普通用户登陆,普通用户su到root(PermitRootLogin no),在sshd配置文件中修改以下内容

vim /etc/ssh/sshd_config
将#PermitRootLogin yes修改为PermitRootLogin no


服务器上用不到的端口关闭,用不到的服务停掉(使用ntsysv命令关闭服务)

应用程序环境软件(apache,nginx,php,mysql)避免使用太老版本

不可逆操作在操作前一定要备份相关的数据或配置文件

重要数据一定要备份,尽量本地和远程留存两份

web禁止目录浏览(apache:Options -Indexes ; nginx:在编译时加上- -without-http_autoindex_module)

编辑apache主配置文件,修改如下内容
<Directory 网站目录绝对路径>
Options FollowSymLinks
Options -Indexes  #新增此行
AllowOverride None
</Directory>


web可写目录下禁止解析php(nginx:location ~ /data/.*.php${deny all;} ; apache:php_admin_flag engine off)

nginx:编辑主配置文件在location ~ \.php$代码前加入以下内容
location ~ /data/.*\.php$ {
deny all;
}

apache:编辑apache主配置文件,修改如下内容
<Directory 网站可写目录绝对路径>
Options FollowSymLinks
Options -Indexes
AllowOverride None
php_admin_flag engine off  #新增此行
</Directory>


设定php禁用函数,在php.ini中增加以下内容:

disable_functions = popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo


网站目录下禁止有test命名的文件如test.php,test.html…

-php.ini中关闭display_error(网站报错调试时可打开平时关闭)

站点后台访问需要限定IP访问,如下:

apache:在虚拟主机配置文件中加入以下内容
<filesmatch "(.*)admin(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from  2.2.2.2  #允许2.2.2.2这个IP访问
</filesmatch>

nginx:假如我的站点后台地址为: http://www.abc.com/admin.php 那么我想限制只有个别ip可以访问后台,那么需要在配置文件中增加以下内容
location ~ .*admin.* {
allow 1.1.1.1;  #允许访问的IP
allow 12.12.12.0/24;  #允许访问的IP段
deny all;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass  unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
}


建议每个站点都配置访问日志,并且做日志切割压缩归档,磁盘空间允许的话,尽量存放比较久的时间

尽量避免开放FTP服务,如果要开放要满足两个原则:1、限定IP访问(iptables实现);2、密码设置一定要复杂

个人linux学习系列完
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: