好久没有玩linux了, 下午的时候有点时间, 搭了一套环境.
使用的VMware workstation安装的Ubuntu 12 Server, 网络连接使用的NAT, Remove掉了Floppy.
Host是Intel Core i5-4570 3.2GHz的64Bit CPU, Memory 是4G. 配置还可以, 故给VMware配置了1G的Memory, 20G的Disk.
Ubuntu的安装过程现在是越来越简单了, 过程也记不清了, 这里就不说了. 总之顺利安装成功.
Host 的IP是 192.168.82.81, Client的IP是192.168.206.129.
因为Company里有Security Audit, 所以需要通过Proxy才能上外网, 故第一步给Ubuntu设置代理服务器.
editor /etc/profile
添加:
http_proxy=http://192.168.88.80:3128 https_proxy=http://192.168.88.80:3128 ftp_proxy=http://192.168.88.80:3128 export http_proxy https_proxy ftp_proxy
然后Reboot.
OK, 可以上外网了. 现在开始更新apt源, 由于默认安装后的源是Ubuntu在国外的服务器, 非常慢, 所以先更改源地址:
editor /etc/apt/sources.list
然后在所有的archive.ubuntu.com前加上cn., 即: http://cn.archive.ubuntu.com/ubuntu/ , cn.archive.ubuntu.com 是由阿里巴巴维护的, 放在阿里云上, 速度是很快的.
下面开始 update source list:
atp-get update
下面开始安装VIM, 使用Editor编辑器实在不顺手:
apt-get install vim
下面开始安装LAMP:
tasksel install lamp-server
下面开始安装Nginx:
apt-get install nginx
下面开始安装phpMyAdmin:
apt-get install phpmyadmin
至此nginx+lamp+phpmyadmin安装结束. 现在要开始进行配置.
因为nginx会占用80端口, 所以apache将无法启动, 因为nginx是进行对外公布的load blancing, 所以nginx会占用80和443 两个端口. 所以先来修改apache的端口, 以及启用apache对于SSL的支持.
vim /etc/apache/prots.conf
将apache的监听http协议的端口改为8080, SSL协议的端口改为4433
NameVirtualHost *:8080 Listen 8080 NameVirtualHost *:4433 <IfModule mod_ssl.c> Listen 4433 </IfModule> <IfModule mod_gnutls.c> Listen 4433 </IfModule>
然后切换目录到/etc/apache2/mods-enabled/
cd /etc/apache2/mods-enabled/
执行命令下面命令, 以启用apache对于SSL的支持:
ln -s ../mods-available/ssl.conf ln -s ../mods-available/ssl.load
然后将apache自带的ssl站点进行启用:
cd /etc/apache2/sites-enabled/ ln -s ../sites-available/default-ssl
然后对000-default和default-ssl这2个virtual host进行端口更改:
vi /etc/apache2/sites-enabled/000-default vi /etc/apache2/sites-enabled/default-ssl
将000-default中的VirtualHost *:80改为VirtualHost *:8080, 将default-ssl中的VirtualHost *:443改为VirtualHost *:4433
在Host上使用IE打开Http://192.168.206.129:8080和https://192.168.206.129:4433, 如果都可以打开, 说明apache的配置成功.
现在来配置nginx, 使其进行反向代理和负载均衡:
vi /etc/nginx/sites-enabled/default
需要分别配置http和https的load blancing, 其中192.168.82.81是Host上安装的IIS:
upstream loadblancing{ server 192.168.82.81:80; server 127.0.0.1:8080; } upstream loadblancingssl{ server 192.168.82.81:443; server 127.0.0.1:4433; }
然后在server节点里, 将location节点修改为:
location /{ proxy_pass http://loadblancing; }
然后定位到文件末页, 将关于Https Server的注释符号”#” 全拿掉, 使其启用.
并且将其location节点修改为:
location / { https://loadblancingssl; }
另外, 需要将ssl证书和key的位置进行修改, 在后面我们需要创建open ssl 证书:
ssl_certificate /root/server.crt; ssl_certificate_key /root/server.key;
现在来创建openssl证书, 首先来创建私钥, 创建私钥的过程中会要求输入密码:
openssl genrsa -aes256 -out server.key 1024
创完私钥, 来创建证书的请求文件:
openssl req -new -key server.key -out server.csr
请求文件创建成功后, 我们来把私钥做个备份:
cp server.key server.key.bak
我们把带密码的key取消掉口令, 以便Nginx可以正常使用:
openssl rsa -in server.key.bak -out server.key
然后我们使用x509来颁发证书, 得到证书文件server.crt :
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
现在我们来重启Nginx:
/etc/init.d/nginx restart
OK, 结束. 现在可以在host上打开IE, 浏览http://192.168.206.129和https://192.168.206.129, 会发现相同的URL在点击刷新后, 不断出现不同的页面, 这是因为一个是Client上的Apache首页, 一个是Host上的IIS首页.