Web开发从入门到放弃

Mac OS中Apache服务器(httpd)的使用与控制

本文主要介绍Mac OS中预装的Apache服务器(httpd)的基本使用方法,不涉及Apache的编译或安装方法。

1. 查看是否已经安装,以及安装的版本信息

1
2
3
4
5
6
7
whereis httpd
/usr/sbin/httpd
whereis apachectl
/usr/sbin/apachectl
httpd -v
Server version: Apache/2.4.10 (Unix)
Server built: Jan 8 2015 20:48:33

注:2.2.x与2.4.x的配置文件中的指令存在较大的差别,故使用网上搜来的配置时,请特别注意版本之间的差异。

全文阅读

Linux服务器使用公钥认证实现免密码登录

关于使用ssh进行公钥认证的说明,可以查看man ssh,然后查看认证部分,里面有详细的说明,这里只给出一个通用的操作流程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 1\. 使用ssh-keygen生成公私钥对
# 这里使用rsa加密算法,并且指定了输出文件的名称和路径(当前路径)
# 提示要输入密码时,一路enter跳过即可(不设置密码)
#
[test@CentOS-7 ~]$ ssh-keygen -t rsa -f test
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
7a:b4:9a:70:5a:d6:9e:4f:64:d2:ea:6e:e2:17:cc:3c test@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . |
| +S + |
| +E* |
| . = =o. |
| *.*oo |
| ..+==.. |
+-----------------+
# 生成的公钥为test.pub, 私钥为test
#
[test@CentOS-7 ~]$ ll test*
total 8
-rw-------. 1 test test 1675 Jul 14 23:11 test
-rw-r--r--. 1 test test 408 Jul 14 23:11 test.pub
全文阅读

基本的服务器安全措施——修改sshd_config限制用户登陆

最常见同时也是最简单无脑的一种服务器攻击方式,应该是暴力的密码破解。如果服务器的root账户没有限制密码错误次数,而且密码设置过于简单的话,简单暴力的密码破解都很有可能攻击成功,获取root权限。我们可以通过简单的修改sshd_config文件达到限制用户登陆的目的,在一定程度上减少这样的威胁。

首先,在Linux服务器上,sshd服务是默认开启的(可以通过service sshd status查看),并且监听22端口,所以我们才能通过ssh登陆到服务器。而sshd_config文件则是sshd服务的配置文件,修改该配置文件就可以达到限制用户通过ssh登陆的作用。

配置文件sshd_config的位置默认是/etc/ssh/sshd_config,配置的文件格式可以通过man sshd_config指令查看。这里只介绍其中比较实用和有效的几个配置。

全文阅读

Nginx使用HTTP认证实现简单的访问控制

HTTP认证可以用于实现基本的访问控制。这个功能在系统没有实现具体的权限控制功能前,可以简单快速的实现通过用户名和密码进行认证登陆的功能。实际上,以前很多路由器管理界面的登陆就是使用的HTTP认证。这个功能是HTTP协议的一部分,在移动平台上使用也没有任何问题。

在Nginx中,可以通过模块 ngx_http_auth_basic_module 来实现基本的HTTP认证,限制用户对服务器资源的访问。

1
2
3
4
5
6
# 密码验证的提示信息
#
auth_basic "Please input username and password";
# 保存用户名和密码的文件
#
auth_basic_user_file /path/to/file;
全文阅读

Nginx基于域名的虚拟主机配置

首先,一般服务器的公网IP地址只有一个。如果要在Nginx中建立多个虚拟主机的话,如果使用基于端口的虚拟主机配置,就必然会使用到多个端口,URL也会变成这样:www.example.com:8080。虽然也达到了同样的目的,但这URL却不方便记忆,对用户更是不友好的。

如果你拥有一个域名,并且可以设置其解析规则的话,设置多个二级域名并根据域名建立虚拟主机是一个比较好的选择。比如,论坛服务由forum.example.com提供,博客服务由blog.example.com提供。

整个配置文件的结构如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
http {
# global configuration
#
...
# default server handles those unmatched pattern
#
server {
listen 80 default_server;
server_name example.com www.example.com;
...
}
# forum host
#
server {
listen 80;
server_name forum.example.com;
...
}
# blog host
#
server {
listen 80;
server_name blog.example.com;
...
}
}

全文阅读