转载自
https://www.cnblogs.com/taiyonghai/p/6728707.html
一、Nginx简介

Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤

二、Nginx安装

1、下载Nginx及相关组件

Linux系统是Centos 6.5 64位,我直接切换到root用户下安装

进入用户目录下载程序

下载相关组件

复制代码
[root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
省略安装内容…
[root@localhost src]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
省略安装内容…
[root@localhost src]# wget http://zlib.net/zlib-1.2.11.tar.gz
省略安装内容…
[root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
省略安装内容…
复制代码
安装c++编译环境,如已安装可略过

[root@localhost src]# yum install gcc-c++
省略安装内容…
期间会有确认提示输入y回车
Is this ok [y/N]:y
省略安装内容…
2、安装Nginx及相关组件

openssl安装

[root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz
省略安装内容…
[root@localhost src]# cd openssl-fips-2.0.10
[root@localhost openssl-fips-2.0.10]# ./config && make && make install
省略安装内容…
pcre安装

[root@localhost src]# tar zxvf pcre-8.40.tar.gz
省略安装内容…
[root@localhost src]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure && make && make install
省略安装内容…
zlib安装

[root@localhost src]# tar zxvf zlib-1.2.11.tar.gz
省略安装内容…
[root@localhost src]# cd zlib-1.2.11
[root@localhost zlib-1.2.11]# ./configure && make && make install
省略安装内容…
nginx安装

[root@localhost src]# tar zxvf nginx-1.10.2.tar.gz
省略安装内容…
[root@localhost src]# cd nginx-1.10.2
[root@localhost nginx-1.10.2]# ./configure && make && make install
省略安装内容…
3、启动Nginx

先找一下nginx安装到什么位置上了

进入nginx目录并启动

报错了,error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory,按照下面方式解决

复制代码
1.用whereis libpcre.so.1命令找到libpcre.so.1在哪里
2.用ln -s /usr/local/lib/libpcre.so.1 /lib64命令做个软连接就可以了
3.用sbin/nginx启动Nginx
4.用ps -aux | grep nginx查看状态
[root@localhost nginx]# whereis libpcre.so.1
[root@localhost nginx]# ln -s /usr/local/lib/libpcre.so.1 /lib64
[root@localhost nginx]# sbin/nginx
[root@localhost nginx]# ps -aux | grep nginx
复制代码

进入Linux系统的图形界面,打开浏览器输入localhost会看到下图,说明nginx启动成功

nginx的基本操作

复制代码
启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
复制代码
4、简单配置Nginx

打开nginx配置文件位于nginx目录下的conf文件夹下

简单介绍一下vim的语法

复制代码
默认vim打开后是不能录入的,需要按键才能操作,具体如下:
开启编辑:按“i”或者“Insert”键
退出编辑:“Esc”键
退出vim:“:q”
保存vim:“:w”
保存退出vim:“:wq”
不保存退出vim:“:q!”
复制代码
"#"代表注释,最重要的是server{}块这部分就代表每一个web站点,详细的配置介绍可以查阅我的另一片配置文章,此处我们先暂时设置三个站点

分别使用不同的端口80、81、82保存退出并且重启nginx

5、开启外网访问

在Linux系统中默认有防火墙Iptables管理者所有的端口,只启用默认远程连接22端口其他都关闭,咱们上面设置的80等等也是关闭的,所以我们需要先把应用的端口开启

方法一直接关闭防火墙,这样性能较好,但安全性较差,如果有前置防火墙可以采取这种方式

关闭防火墙
[root@localhost ~]# service iptables stop
关闭开机自启动防火墙
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# chkconfig --list|grep ipt
下面是防火墙的其他操作命令

方法二将开启的端口加入防火墙白名单中,这种方式较安全但性能也相对较差

编辑防火墙白名单
[root@localhost ~]# vim /etc/sysconfig/iptables
增加下面一行代码
-A INPUT -p tcp -m state – state NEW -m tcp --dport 80 -j ACCEPT
保存退出,重启防火墙
[root@localhost ~]# service iptables restart

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

10.11.13.22 nginx.test.com nginx.test1.com nginx.test2.com
然后cmd再ping一下这个域名是否正确指向了这个IP上

正确指向后在telnet一下80端口看一下是否可以与端口通信(如果telnet提示没有此命令是没有安装客户端,在启用或禁用windows功能处安装后再操作即可)

得到以下界面及代表通信成功

打开这台Windows系统内的浏览器,输入nginx.test.com会得到以下结果,就说明外网访问成功

如果防火墙你依然启用,只是设置了启用端口,那我们访问81那个端口会发现无法访问,因为我并没有加入白名单

到此Nginx服务器雏形部署完成。

6、Nginx负载均衡配置

Nginx集反向代理和负载均衡于一身,在配置文件中修改配就可以实现

首先我们打开配置文件

[root@localhost nginx]# vim conf/nginx.conf
每一个server就是一个虚拟主机,我们有一个当作web服务器来使用

listen 80;代表监听80端口
server_name xxx.com;代表外网访问的域名
location / {};代表一个过滤器,/匹配所有请求,我们还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤
root html;代表站点根目录
index index.html;代表默认主页

这样配置完毕我们输入域名就可以访问到该站点了。

负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,那我们就需要upstream{}块来配合使用

复制代码
upstream xxx{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等
ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器
server;代表后端服务器地址

server{};server模块依然是接收外部请求的部分
server_name;代表外网访问域名
location / {};同样代表过滤器,用于制定不同请求的不同操作
proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名

server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名
复制代码

配置一下Windows的host将我们要访问的域名aaa.test.com指向Linux

因为硬件有限,我是将Windows中的IIS作为Nginx的后端服务器,所以配置一下IIS的站点域名

打开cmd再ping一下aaa.test.com确实指向Linux系统了,再打开浏览器输入aaa.test.com会显示bbb这个站点就代表负载成功了。

Nginx的负载功能就配置完成了,这只是简单设置了一下,生产环境中还有很多详细的调整,后续再逐渐增加,本人水平有限,如有不对之处还望指导谢谢。

如果需要添加域名和IP的对应关系可以在以下地方进行修改。

打开系统目录:c:/windows/system32/drivers/etc找到hosts文件,打开hosts文件并在最后面添加一条记录

例如:

127.0.0.1 www.163.com

centos安装nginx详细教程及配置虚拟机域名重定向相关推荐

  1. Linux 安装 nginx 详细教程

    文章目录 Linux 安装 nginx 详细步骤 ①安装依赖包 ②下载并解压安装包 ③安装 nginx ④启动 nginx 服务 ⑤nginx 反向代理 提示:以下是本篇文章正文内容,Linux 系列 ...

  2. CentOS8安装nginx详细教程

    Nginx发音为" engine x",是一种开源的高性能HTTP和反向代理服务器,负责处理Internet上一些最大站点的负载.它可用作HTTP和非HTTP服务器的独立Web服务 ...

  3. Linux(Ubuntu)安装和完美卸载Apache详细教程和配置多域名、端口映射

    Linux(Ubuntu)安装,卸载Apache详细教程 第一种方法–软件包安装(简单便捷) sudo apt-get update sudo apt-get install apache2 参考博客 ...

  4. Win11安装VScode详细教程、配置Anaconda与python环境

    1. Anaconda与VSCode的下载与安装 首先参考该教程进行 Anaconda与VSCode的基础安装:Anaconda + VSCode 最详细教程 注意: 1) 上方教程中下载32位.64 ...

  5. 免编译安装Nginx_Linux安装Nginx详细教程

    环境准备 1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来. 命令:yum install gcc-c++ 显示完毕,表示安装完成: 2.Nginx的http ...

  6. Mac 安装Nginx详细教程

    目录 一.前言 二.正文 1.安装 Homebrew 2.brew安装nginx 3.启动nginx服务,如下命令: 三.总结nginx常见的配置 1.nginx启动: 2.nginx停止 一.前言 ...

  7. centos 安装yapi 详细教程

    1.下载nodejs https://nodejs.org/en/download/ 2.解压nodejs tar包到指定目录 tar -xvf /application/node-v12.13.1- ...

  8. ubuntu安装docker详细教程以及配置阿里云镜像加速

    ubuntu环境: Distributor ID: Ubuntu Description:    Ubuntu 16.04.2 LTS Release:        16.04 Codename: ...

  9. centos安装Redis详细教程

    1.网上搜索redis,查找下载连接 链接为http://download.redis.io/releases/redis-6.0.3.tar.gz 2.使用wget下载gz包,安装成功如图所示 wg ...

最新文章

  1. 对数据库表中的某一字段去重分组排序
  2. C# 批处理制作静默安装程序包
  3. 那些不怕失业的程序员们,都有什么技能?
  4. nginx官方模块之http_sub_status_module
  5. android eclipse 下Device无设备问题解决
  6. php中的active,用ActivePHP打造版本管理系统
  7. C4D立体风格海报素材|电商万能套用BANNER是美工必收藏
  8. php input file 上传文件类型,php轻松实现文件上传功能
  9. 《深入解析IPv6(第3版)》——11.4 流量转换
  10. iBATIS框架源码剖析
  11. 速进,双十一内购通道!
  12. 12 浏览器对象模型BOM
  13. 力扣的使用简介及代码编写说明
  14. 【必看】没用的旧手机还能换钱,换换回收手机回收价格表曝光
  15. (附源码)springboot大学生防疫封校管理系统 毕业设计632124
  16. 一位腾讯产品的微信公众号运营手册
  17. [禅悟人生]有一种禅心叫认真
  18. arduino烧写失败,改用progisp烧写
  19. 2021-02-10
  20. 虚拟机连接外网(桥接)

热门文章

  1. 程序员 录屏 免费录屏软件 录屏软件 程序员必备 学习必备 教学必备
  2. 7种提高代码阅读能力的方法
  3. 超级简单的Android控件View转图片Bitmap
  4. BPF技术介绍 - 生态和历史
  5. 我爱我家2020年业绩下降六成:规模远不及贝壳,多名股东开启减持
  6. html画一个word怎么实现,word怎么制作流程图 Word中如何快速高效的制作流程图
  7. django莫名其妙错误-It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format.]
  8. IPP 的FFT测试
  9. mac安装pyinstaller和py2app打包python程序生成app应用程序
  10. Wpf 文本框模糊匹配