一.什么是Nginx:

  Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。

二.Nginx作用:

  反向代理,集群,虚拟服务器,负载均衡,动静分离,解决跨域问题等

三.安装Nginx:

  1.链接 https://nginx.org/en/download.html,如下

    

  2.linux和windows版本下载完后解压(windows版本解压即可)

  以linux为例,解压后得到

    

  3.进入文件夹后可以看到目录

    

  4.执行

./configure

  5.如果出现错误如下,则

    

      (1)安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

      (2)安装PCRE,链接https://sourceforge.net/projects/pcre/files/pcre/

        下载PRCE安装包并解压,例如下图

        

        进入解压后的文件夹,找到configure并执行

cd prce-8.43.tar.gz
./configure

        安装并查看prce版本

make && make install
pcre-config --version

  6.再次进入nginx-1.14.2文件夹,执行

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.43

  7.再执行make(注意上面那行代码,这里默认会去找/usr/local/src/ 下的prce-8.43文件夹),然后make install完成安装。

  8.查看nginx版本(上面指定的目录)

/usr/local/webserver/nginx/sbin/nginx -v

  例如

    

  9.启动nginx,进入第6步中--prefix所指定的文件夹中,再进入sbin文价夹中,执行./nginx

    (在nginx文件夹中重启是./nginx -s reopen)

  10.查看nginx是否启动,例如

    

  nginx默认端口是80,所以直接访问ip地址,例如下图所示,即可知nginx启动成功

    

四.使用Nginx

  

  1.静态资源文件夹里的文件可以直接在外部访问,例如

    

  2.实现反向代理(可以不暴露真实IP地址)

    修改nginx.conf配置文件

      

    注意:上面那个箭头指向的地址,必须在主机hosts文件中设置地址映射(域名解析),如下图

      

  重新加载配置文件

./nginx -s reload

  测试:

    

  如果反向代理没有成功,可以查看log日志,找到并进入logs文件夹,输入

cat error.log

  例如下图

    

  如果发现正常启动成功,却没有成功配置反向代理。可以看看是否是自己修改了正确的配置文件(注意,nginx解压后的conf文件夹中有一个配置文件,而nginx启动目录下的文件夹中有一个nginx.conf配置文件,还有一个nginx.conf.default配置文件,可以试着将三个配置文件都修改试试,如果是按照上面安装步骤,应该是只修改的是/usr/local/webserver/nginx/conf中的nginx.conf)

  3.实现集群(使用nginx实现负载均衡)

    负载均衡算法:

      轮询机制:在配置文件http中添加 (请求会轮流转发到129和130两个服务器的tomcat服务器)

upstream backserver { 
server 192.168.2.129:8080; 
server 192.168.2.130:8080; 

      注意:proxy_pass指向的是backserver ,如http://backserver

      权重(比例分配):

upstream backserver { 
server 192.168.2.129:8080 weight=10; //129访问10次,130访问一次
server 192.168.2.130:8080 weight=1; 

      IP绑定:(随机绑定一个,而且绑定后一个ip地址就固定访问一个服务器了,可以解决session共享问题,可一旦该服务器挂了,会出现数据丢失)

upstream backserver { 
ip_hash; 
server 192.168.2.129:8080; 
server 192.168.2.130:8080; 

  4.Nginx宕机容错机制

    通过上述安装的Nginx默认是开启宕机容错机制的,比如说上面集群中server 192.168.2.129:8080挂掉,它会自动找130的服务器

    如果想要添加宕机容错规则的话,可以在配置文件中的proxy_pass下面添加

proxy_connect_timeout ; #最大连接时间
proxy_send_timeout ; #最大发送时间
proxy_read_timeout ; #最大读取时间

Nginx从安装到简单使用的更多相关文章

  1. nginx的安装及简单负载均衡配置

    Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性.本人目前所在公司也使用nginx,主要用来做负载均衡服务器.同时也可以作为邮件代理服务器. 1. nginx的安装.本 ...

  2. Nginx的安装及简单配置

    Nginx安装 1.下载相关组件 yum install -y gcc gcc-c++                                   #安装C/C++编译器 yum -y ins ...

  3. nginx 编译安装以及简单配置

    前言 Nginx的大名如雷贯耳,资料太多了,网上一搜一大把,所以这里就不阐述nginx的工作原理了,只是简单的编译安装nginx,然后呢,简单配置一下下. 下载Nginx.安装 下载地址:http:/ ...

  4. ECS centos6.8系统下从nginx安装到简单网站上线配置操作的完整记录

    1.准备工作 1.1已购买阿里云云服务器ECS 1.2域名已购买并解析成功 1.3安装有远程链接工具Xshell和文件传输工具Xftf,并链接上ECS实例 2.安装nginx(在Xshell操作) 2 ...

  5. Nginx + ngx_lua安装测试【CentOs下】

          最近打算搞搞nginx,扒着各位先驱的文章自己进行测试下,中间过程也是错误不断,记录一下,以备使用.       nginx的安装挺简单的,主要还是研究下一些第三方的模块,首先想试下初始化 ...

  6. 快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机

    Nginx安装和简单配置虚拟主机 1 Nginx简介 Nginx是近几年最火热的http.反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也可以用作邮件代理服务器.TCP/UDP代理服务器 ...

  7. nginx之旅:安装及简单部署

    安装之前最好了解一下nginx,参考nginx百度百科吧,下面这一句话基本概括了nginx的基本功能 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理  ...

  8. Nginx在linux下安装及简单命令

    安装环境:Centos7 创建目录及切换至目录 # mkdir /usr/local/nginx # cd /usr/local/nginx/ 下载nginx包,访问http://nginx.org下 ...

  9. nginx的安装

    1,,nginx的安装 为什么使用nginx我就不多说了,很优秀的,请再行google 在安装前,先安装pcre,安装zlib,安装openssl,以及一些其他包 yum install -y gcc ...

随机推荐

  1. [Paper翻译]Scalable Lock-Free Dynamic Memory Allocation

    原文: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.3870&rep=rep1&type=pdf Abstr ...

  2. Harbor 1.8.0 仓库的安装和使用

    安装的先决条件 硬件环境 1.CPU    至少2G,最好4G 2.内存    至少4G,最好8G 3.磁盘    至少40G,最好160G 软件环境 1.docker版本    17.03.0-ce ...

  3. Tools - Tcpdump

    Tcpdump homepage - tcpdump wiki - tcpdump 常用格式 tcpdump -i eth<网卡号> port <端口号> -s0 -w < ...

  4. Azure DevOps的variable group实现array和hashtable参数的传递

    Azure Devops中的variable group建议或者只能(?)添加string类型的value.基于此我们想在variable group实现array或者hashtable的传递的核心思 ...

  5. Git操作记录、腾讯工蜂

    腾讯工蜂: http://git.code.tencent.com 登录-->>创建项目-->>获取仓库路径 https://git.code.tencent.com/dang ...

  6. Linux基础重点习题讲解

    第一章  一个EXT4的文件分区,当时使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df-h命令查看磁盘大小时,只使用了60%的磁盘空间,为什么会出现这 ...

  7. for i in range()

    for i in range()就是python中的循环语句 有以下三种常见用法: 1.range(3) [0,3)即0,1,2 2.range(1,3) [1,3)即1,2 3.range(1,5, ...

  8. EF-初识

    什么是ORM 起源随着编程的发展,程序里都是面向对象啥的,但是数据库发展呢  网状数据库 ->层次数据库 ->关系数据库(当然还有nosql数据库  我们只是做热数据缓存  后面将会讲到) ...

  9. java.lang.reflect.InvocationTargetException at shade.com.datastax.spark.connector.google.common.base.Throwables.propagate(Throwables.java160)

    org.apache.spark.SparkException: Job aborted due to stage failure: Task 1 in stage 29.1 failed 4 tim ...

  10. php去掉字符串中的最后一个字符和汉字

    ###php去掉字符串中的最后一个字符和汉字 1.php去掉字符串中的最后一个字符: //方法一: $newstr = substr($str,0,strlen($str)-1); //方法二: $n ...