安装Nginx

yum安装nginx

! CentOS 6 默认仓库不包含nginx,需要手动添加nginx的仓库。
添加nginx仓库
vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

安装nginx
yum -y install nginx

启动nginx
service nginx start
验证启动:
netstat -tunlp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1778/nginx

使用浏览器访问
http://192.168.56.101:80
Welcome to nginx!

安装路径:
/etc/nginx/
配置文件
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
常用命令:
/usr/sbin/nginx
日志路径:
/var/log/nginx/

源码安装Nginx

Nginx是反向代理服务器和web服务器,反向代理实现7层http协议的负载均衡。

安装Nginx依赖的库

yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel

检查是否安装了gcc
#rpm -qa|grep gcc
libgcc-4.4.7-18.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gcc-c+±4.4.7-18.el6.x86_64

检查是否安装了zlib
#rpm -qa|grep zlib
zlib-1.2.3-29.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64

安装Nginx依赖的pcre包
ftp://ftp.pcre.org/pub/pcre/
下载stable 版本:
cp pcre-8.12.tar.gz 到/usr/local/src/ nginx-1.12.1目录
解压
#tar zxvf pcre-8.12.tar.gz
#cd pcre-8.12
#./configure
#make
#make install
检查是否安装成功:
#rpm -qa|grep pcre
pcre-7.8-7.el6.x86_64
pcre-devel-7.8-7.el6.x86_64
如果devle没有安装
yum -y install pcre-devel

安装Nginx

下载安装包

http://nginx.org/

进入如下目录,将下载的Nginx包解压
#cd /usr/local/src/
#tar zxvf nginx-1.12.1.tar.gz
#cd nginx-1.12.1

安装Nginx

  1. 创建用户nginx使用的www用户。
    #groupadd www #添加www组
    #useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统

创建安装目录与日志目录
a) 安装目录
# mkdir /usr/local/nginx
b) 日志目录
# mkdir /data0/logs/nginx
# chown www:www /data0/logs/nginx -R

#./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
#make
#make install

检查是否安装成功
#cd /usr/local/nginx/sbin
#./nginx -t
结果显示:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#ps -ef |grep nginx
root 11705 1 0 17:59 ? 00:00:00 nginx: master process ./nginx
www 12673 11705 0 19:09 ? 00:00:00 nginx: worker process

常用命令:
#cd /usr/local/nginx/sbin
启动Nginx
#./nginx
加载最新配置:
#./nginx -s reload
立即停止:
#./nginx -s stop
查看进程是否停止:
#ps aux|grep nginx
优雅停止:
#./nginx -s quit
重新打开日志:
#./nginx -s reopen

关闭防火墙
#service iptables stop
关闭开机自启动防火墙
#chkconfig iptables off
#chkconfig --list|grep ipt
开启防火墙
#service iptables start
重启防火墙
#service iptables restart

将开启的端口加入防火墙白名单中
编辑防火墙白名单
#vim /etc/sysconfig/iptables
增加下面一行代码
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
保存退出,重启防火墙
#service iptables restart

配置Nginx

配置虚拟主机:

#cd /usr/local/nginx/conf
#vi nginx.conf
增加如下代码:
server{
listen 81;
server_name localhost;
location /{
root html/sdlx;
index index.html;
}
}

在/usr/local/nginx/html中mkdir sdlx
在/usr/local/nginx/html/sdlx中vi index.html
输入hello sdlx.com
保存退出。
在浏览器中输入:
http://localhost:81

配置虚拟主机(使用域名)

#cd /usr/local/nginx/conf
#vi nginx.conf
增加如下代码:
server{
listen 80;
server_name nginx.sdlx.com;
location /{
root html/sdlx;
index index.html;
}
}

Linux配置完毕了,使用另一台电脑而非安装nginx的电脑,我是用的windows系统,配置一下host在“C:\Windows\System32\drivers\etc”下的hosts中配置一下域名重定向
10.109.100.172 nginx.sdlx.com

然后cmd再ping一下这个域名是否正确指向了这个IP上
ping nginx.sdlx.com
正在 Ping nginx.sdlx.com [10.109.100.172] 具有 32 字节的数据:
来自 10.109.100.172 的回复: 字节=32 时间<1ms TTL=64
来自 10.109.100.172 的回复: 字节=32 时间<1ms TTL=64
来自 10.109.100.172 的回复: 字节=32 时间<1ms TTL=64
来自 10.109.100.172 的回复: 字节=32 时间<1ms TTL=64

10.109.100.172 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms

正确指向后在telnet一下80端口看一下是否可以与端口通信(如果telnet提示没有此命令是没有安装客户端,在启用或禁用windows功能处安装后再操作即可)
telnet 10.109.100.172 80
得到以下界面及代表通信成功
在这里插入图片描述
打开这台Windows系统内的浏览器,输入nginx.sdlx.com会得到以下结果,就说明外网访问成功
在这里插入图片描述
配置负载均衡
实验环境规划:
site1: 10.109.100.172 Nginx 代理服务
site2 :10.109.100.179 Nginx web服务
site3 :10.109.100.181 Nginx web服务

在site1上修改配置文件:
#cd /usr/local/nginx/conf/
#vi nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

upstream backend{
server 10.109.100.179;
server 10.109.100.181;
}
server{
listen 80;
server_name nginx.sdlx.com;
location /{
proxy_pass http://backend;
}
}
}

分别在site2、site3上配置web服务,并启动Nginx(关闭防火墙)
site2上的nginx.conf文件(site3与此相同):
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server{
listen 80;
server_name nginx.sdlx.com;
location /{
root html/sdlx;
index index.html;
}
}
}
修改主页文件,用来区分site2和site3。

在客户机上使用ie浏览器访问site1的IP地址,刷新浏览器,发现在site2、site3的页面进行切换:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值