Linux 搭建Nginx服务
1.Nginx安装
2.Nginx虚拟主机
3.Nginx用户访问控制、进行SSL加密
一、构建Nginx服务器
1)使用源码包安装nginx软件包
[root@svr ~]# yum -y install zlib-devel openssl-devel pcre-devel perl-devel make gcc //安装常见依赖包
[root@svr ~]# useradd –s /sbin/nologin nginx
[root@svr ~]# wget http://124.202.164.12/files/408500000A3B37E2/nginx.org/download/nginx-1.13.1.tar.gz
[root@svr ~]# tar -zxvf nginx-1.13.1.tar.gz
[root@svr ~]# cd nginx-1.13.1
[root@svr nginx-1.13.1]# ./configure \
>--prefix=/usr/local/nginx \ //指定安装路径
>--user=nginx \ //指定用户
>--group=nginx \ //指定组
>--with-http_stub_status_module \ //开启状态统计功能
>--with-http_ssl_module //开启SSL加密功能
....
[root@svr nginx-1.13.1]# make && make install //编译并安装
2)启用nginx服务
[root@svr ~]# /usr/local/nginx/sbin/nginx //启动Nginx
nginx服务默认通过TCP 80端口监听客户端请求:
[root@svr ~]# netstat -anptu | grep nginx
tcp 000.0.0.0:800.0.0.0:* LISTEN 10441/nginx
3)为Nginx Web服务器建立测试首页文件
Nginx Web服务默认首页文档存储目录为/usr/local/nginx/html/,在此目录下建立一个名为index.html的文件:
[root@svr ~]# cat /usr/local/nginx/html/index.html
Welcome to Nginx 192.168.4.5
二、用户认证及访问控制
通过Nginx实现Web页面的认证与访问控制,需要修改Nginx配置文件,在location容器中添加allow及deny语句实现访问控制,
添加auth语句实现用户认证。最后使用htpasswd命令创建用户及密码即可。
修改Nginx配置文件
1)修改/usr/local/nginx/conf/nginx.conf
[root@pc205 ~]# vim /usr/local/nginx/conf/nginx.conf
....
server {
listen 80;
server_name localhost;
auth_basic "Input Password:"; //认证提示符
auth_basic_user_file pass.txt; //认证密码文件
location /{
root html;
index index.html index.htm;
}
location /test {
allow 192.168.4.205; //访问控制,仅192.168.4.205可以访问
deny all; //拒绝所有
index index.html index.htm;
}
2)创建二级页面目录,并生成index.html文件
[root@svr ~]# mkdir /usr/local/nginx/html/test
[root@svr ~]# echo “test” >/usr/local/nginx/html/test/index.html
3)生成密码文件,创建用户tom及密码
使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。
[root@svr ~]# htpasswd -cm /usr/local/nginx/conf/pass.txt tom
New password:
Re-type new password:
Adding password for user tom
4)重启Nginx服务
[root@svr ~]# /usr/local/nginx/sbin/nginx –s stop
[root@svr ~]# /usr/local/nginx/sbin/nginx
客户端测试
1)登录192.168.4.205主机进行测试
http://192.168.4.5 //输入密码后可以访问
http://192.168.4.5/test //输入密码后可以访问
2)登录非192.168.4.205的其他任意主机测试
http://192.168.4.5 //输入密码后可以访问
http://192.168.4.5/test //输入密码后无法访问
三、 Nginx虚拟主机
实现两个基于域名的虚拟主机,域名分别为www.tarena.com和bbs.tarena.com
域名为bbs.tarena.com的Web服务仅允许192.168.4.205访问
对域名为bbs.tarena.com的站点进行用户认证,用户名称为tom,密码为123456
对域名为www.tarena.com的站点进行SSL加密
修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行访问控制的虚拟主机添加allow和deny语句;
对于需要进行用户认证的虚拟主机添加auth认证语句;对于需要进行SSL加密处理的站点添加ssl相关指令。
1)修改Nginx服务配置,添加相关虚拟主机配置如下
[root@svr ~]# vim /usr/local/nginx/conf/nginx.conf
....
server {
listen 192.168.4.5:80; //端口
server_name bbs.tarena.com; //域名
allow 192.168.4.205; //仅192.168.4.205可以访问
deny all; //拒绝所有
auth_basic "Input Password:"; //认证提示符
auth_basic_user_file pass.txt; //认证密码文件
location /{
root bbs;//指定网站根路径
index index.html index.htm;
}
}
server {
listen 192.168.4.5:443;
server_name www.tarena.com;
ssl on; //开启SSL
ssl_certificate cert.pem; //指定证书文件
ssl_certificate_key cert.key; //指定私钥文件
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /{
root www; //指定网站根路径
index index.html index.htm;
}
}
2)生成私钥与证书
[root@svr ~]# openssl genrsa -out cert.key 2048 //生成私钥
[root@svr ~]# openssl req -new -x509 -key cert.key -out cert.pem //生成证书
[root@svr ~]# cp {cert.key,cert.pem}/usr/local/nginx/conf
3)创建网站根目录及对应首页文件
[root@svr ~]# mkdir /usr/local/nginx/{www,bbs}
[root@svr ~]# echo “www” >/usr/local/nginx/www/index.html
[root@svr ~]# echo “bbs” >/usr/local/nginx/bbs/index.html
4)重启nginx服务
[root@svr ~]# /usr/local/nginx/sbin/nginx –s stop
[root@svr ~]# /usr/local/nginx/sbin/nginx
客户端测试
1)修改/etc/hosts文件,进行域名解析
[root@client ~]# vim /etc/hosts
192.168.4.5 www.tarena.com bbs.tarena.com
2)登录192.168.4.205主机进行测试
[root@client ~]# firefox http://bbs.tarena.com //输入密码后可以访问
[root@client ~]# firefox https://www.tarena.com //信任证书后可以访问
3)登录非192.168.4.205的其他任意主机测试
[root@client ~]# firefox http://bbs.tarena.com //无法访问
[root@client ~]# firefox https://www.tarena.com //信任证书后可以访问Linux 搭建Nginx服务器
1.Nginx安装
2.Nginx虚拟主机
3.Nginx用户访问控制、进行SSL加密
一、构建Nginx服务器
1)使用源码包安装nginx软件包
[root@svr ~]# yum -y install zlib-devel openssl-devel pcre-devel perl-devel make gcc //安装常见依赖包
[root@svr ~]# useradd –s /sbin/nologin nginx
[root@svr ~]# wget http://124.202.164.12/files/408500000A3B37E2/nginx.org/download/nginx-1.13.1.tar.gz
[root@svr ~]# tar -zxvf nginx-1.13.1.tar.gz
[root@svr ~]# cd nginx-1.13.1
[root@svr nginx-1.13.1]# ./configure \
>--prefix=/usr/local/nginx \ //指定安装路径
>--user=nginx \ //指定用户
>--group=nginx \ //指定组
>--with-http_stub_status_module \ //开启状态统计功能
>--with-http_ssl_module //开启SSL加密功能
....
[root@svr nginx-1.13.1]# make && make install //编译并安装
2)启用nginx服务
[root@svr ~]# /usr/local/nginx/sbin/nginx //启动Nginx
nginx服务默认通过TCP 80端口监听客户端请求:
[root@svr ~]# netstat -anptu | grep nginx
tcp 000.0.0.0:800.0.0.0:* LISTEN 10441/nginx
3)为Nginx Web服务器建立测试首页文件
Nginx Web服务默认首页文档存储目录为/usr/local/nginx/html/,在此目录下建立一个名为index.html的文件:
[root@svr ~]# cat /usr/local/nginx/html/index.html
Welcome to Nginx 192.168.4.5
二、用户认证及访问控制
通过Nginx实现Web页面的认证与访问控制,需要修改Nginx配置文件,在location容器中添加allow及deny语句实现访问控制,
添加auth语句实现用户认证。最后使用htpasswd命令创建用户及密码即可。
修改Nginx配置文件
1)修改/usr/local/nginx/conf/nginx.conf
[root@pc205 ~]# vim /usr/local/nginx/conf/nginx.conf
....
server {
listen 80;
server_name localhost;
auth_basic "Input Password:"; //认证提示符
auth_basic_user_file pass.txt; //认证密码文件
location /{
root html;
index index.html index.htm;
}
location /test {
allow 192.168.4.205; //访问控制,仅192.168.4.205可以访问
deny all; //拒绝所有
index index.html index.htm;
}
2)创建二级页面目录,并生成index.html文件
[root@svr ~]# mkdir /usr/local/nginx/html/test
[root@svr ~]# echo “test” >/usr/local/nginx/html/test/index.html
3)生成密码文件,创建用户tom及密码
使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。
[root@svr ~]# htpasswd -cm /usr/local/nginx/conf/pass.txt tom
New password:
Re-type new password:
Adding password for user tom
4)重启Nginx服务
[root@svr ~]# /usr/local/nginx/sbin/nginx –s stop
[root@svr ~]# /usr/local/nginx/sbin/nginx
客户端测试
1)登录192.168.4.205主机进行测试
http://192.168.4.5 //输入密码后可以访问
http://192.168.4.5/test //输入密码后可以访问
2)登录非192.168.4.205的其他任意主机测试
http://192.168.4.5 //输入密码后可以访问
http://192.168.4.5/test //输入密码后无法访问
三、 Nginx虚拟主机
实现两个基于域名的虚拟主机,域名分别为www.tarena.com和bbs.tarena.com
域名为bbs.tarena.com的Web服务仅允许192.168.4.205访问
对域名为bbs.tarena.com的站点进行用户认证,用户名称为tom,密码为123456
对域名为www.tarena.com的站点进行SSL加密
修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行访问控制的虚拟主机添加allow和deny语句;
对于需要进行用户认证的虚拟主机添加auth认证语句;对于需要进行SSL加密处理的站点添加ssl相关指令。
1)修改Nginx服务配置,添加相关虚拟主机配置如下
[root@svr ~]# vim /usr/local/nginx/conf/nginx.conf
....
server {
listen 192.168.4.5:80; //端口
server_name bbs.tarena.com; //域名
allow 192.168.4.205; //仅192.168.4.205可以访问
deny all; //拒绝所有
auth_basic "Input Password:"; //认证提示符
auth_basic_user_file pass.txt; //认证密码文件
location /{
root bbs;//指定网站根路径
index index.html index.htm;
}
}
server {
listen 192.168.4.5:443;
server_name www.tarena.com;
ssl on; //开启SSL
ssl_certificate cert.pem; //指定证书文件
ssl_certificate_key cert.key; //指定私钥文件
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /{
root www; //指定网站根路径
index index.html index.htm;
}
}
2)生成私钥与证书
[root@svr ~]# openssl genrsa -out cert.key 2048 //生成私钥
[root@svr ~]# openssl req -new -x509 -key cert.key -out cert.pem //生成证书
[root@svr ~]# cp {cert.key,cert.pem}/usr/local/nginx/conf
3)创建网站根目录及对应首页文件
[root@svr ~]# mkdir /usr/local/nginx/{www,bbs}
[root@svr ~]# echo “www” >/usr/local/nginx/www/index.html
[root@svr ~]# echo “bbs” >/usr/local/nginx/bbs/index.html
4)重启nginx服务
[root@svr ~]# /usr/local/nginx/sbin/nginx –s stop
[root@svr ~]# /usr/local/nginx/sbin/nginx
客户端测试
1)修改/etc/hosts文件,进行域名解析
[root@client ~]# vim /etc/hosts
192.168.4.5 www.tarena.com bbs.tarena.com
2)登录192.168.4.205主机进行测试
[root@client ~]# firefox http://bbs.tarena.com //输入密码后可以访问
[root@client ~]# firefox https://www.tarena.com //信任证书后可以访问
3)登录非192.168.4.205的其他任意主机测试
[root@client ~]# firefox http://bbs.tarena.com //无法访问
[root@client ~]# firefox https://www.tarena.com //信任证书后可以访问