系统环境:Centos 6.5
nginx版本:nginx-1.8.1
FastDFS版本:FastDFS_v5.05.tar
java版本:jdk-7u80-linux-x64.tar
tomcat版本:apache-tomcat-7.0.78
nginx是一个使用c语言编写的应用程序,主要用途是负载均衡和反向代理。作为范围为:
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。可以平均分担,不会因为某一台服务器出现宕机而无法使用。
安装linux虚拟机的步骤就不再说了,有兴趣的可以自己搜,挺简单的。首先因为nginx是c语言开发的,所以依赖GCC环境。在centos中,安装命令如下:
yum install gcc-c++
下载GCC环境。如果是第一次安装的话,会提示你本机没有安装。可以跟着提示安装,大概5分钟的样子就下载好了。除此之外,nginx中的http模块需要用Pcre库(Perl Compatible Regular Expressions)来解析正则表达式,还需要安装Pcre库。
安装命令如下:
yum install -y pcre pcre-devel
说明:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要这个库。
ngixn使用zlib对http的内容进行解压和压缩,也需要安装这个。安装命令如下:
yum install -y zlib zlib-devel
nginx不仅支持http,也支持https(http+ssl不懂可以搜索),所以为了安全,安装
OpenSSL,这
是一个强大的安全套接字层密码库。安装命令如下:
yum install -y openssl openssl-devel
到这一步,安装所需要的库已经好了。我们将nginx的源码上传到服务器,使用远程工具SecureCRT(本人机器版本为Version 8.0.4)。
点击下一步
Hostname是IP地址。端口不用改。用户名是就是安装虚拟机时候的用户名。连接成功后,输入
su -
输入密码,进入root用户。按住Alt+P,直接将nginx的源码拖过来就可以了。
红色矩形的就是nginx的目录。进入目录:
cd /home/mills
解压
tar -zvxf nginx-1.81.tar.gz
在当前目录会得到nginx-1.81.tar.gz的文件夹。
cd nginx1.8.1
ll
会看到有一个configure的文件。我们就要先对他进行编译。不过在编译之前。我们需要先新建几个目录
mkdir /var/temp
mkdir /var/temp/nginx
或者使用
mkdir -p /var/temp/nginx
都可以达到目的。
创建完毕之后,回到/home/mills/nginx-1.8,1目录下编译
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
make
makeinstall
到这里就安装完毕了。然后启动nginx。进入目录cd /usr/local/nginx/sbin 输入
./nginx
看到这个页面就是说访问成功了。如果没有看到,多半是防火墙的事情。输入
vim /etc/sysconfig/iptables
添加一句
-A INPUT -p tcp -m state NEW -m tcp --dport 80 -j ACCEPT
这样就打开了80端口。vim的使用就不多说了。i插入,:wq保存退出
./nginx -s stop
当修改了nginx服务之后,不用停止在启动,输入
./nginx -s reload
就可以了
在/usr/local/nginx/conf目录下nginx.conf文件是nginx的配置文件。
主要的配置就是server这一块 # 很重要的虚拟主机配置
server {
listen 80; #监听的端口
server_name itoatest.example.com; #域名
root /apps/oaapp; #访问目录
charset utf-8; #编码格式
access_log logs/host.access.log main;
#对 / 所有做负载均衡+反向代理
location / {
root /apps/oaapp;
index index.jsp index.html index.htm; #html文件
proxy_pass http://backend;
proxy_redirect off;
# 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
就是说可以从
itoatest.example.com通过80端口访问,默认打开root目录下的index.jsp页面
修改完要重新加载配置文件。
有一个很关键的地方,我在配置好fastDFS的时候,怎样都在浏览器访问不到,最后在nginx的配置文件开头加上了user root;
就ok了。
upstream tomcats{
server 192.168.25.148:8080 weight=4
server 192.168.25.148:8081;
}
server {
listen 80;
server_name tomcat.nginxtest.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcats;
index index.html index.htm;
}
}
当我们通过
tomcat.nginxtest.com
访问服务器的时候,下面的location就会将请求转发到tomcats,我们通过upstream定义了tomcats,访问的就是
192.168.25.148:8080,熟悉java web开发的人知道,这个会访问Tomcat的首页。而后面的weight就定义了权重,也就是说,你用同一台机器访问500次的话,有400次访问的是
192.168.25.148:8080这个服务器。默认为1.这就是负载均衡。
先睡觉,明天在写。
参考文献:http://seanlook.com/2015/05/17/nginx-install-and-config/