当前位置: 首页 > article >正文

Nginx搭建以及使用(linux)

目录

1.概念

2.工具下载

3.解压安装

         1.解压安装pcre-8.40.tar.bz2文件

        2.解压安装zlib-1.2.11.5.tar.gz文件

        3.解压安装openssl-1.0.1t.tar.gz文件

        4.解压安装nginx-1.10.1.tar.gz 文件


1.概念

        Nginx是一个高性能的HTTP和反向代理服务器,它可以用来处理静态文件,负载均衡,反向代理等功能。
        Nginx的来历是这样的:它是由俄罗斯人伊戈尔·赛索耶夫为Rambler.ru站点开发的,第一个公开版本发布于2004年10月4日。
        Nginx的优点有:
                 1. 配置简洁,易于维护
                 2.静态处理性能高,占用内存少,支持高并发
                 3.支持多种负载均衡策略,如轮询,权重,IP绑定等
                 4.支持热部署,不间断服务
                 5.支持多语言通用服务器
        Nginx的缺点有:
                1.对动态请求的处理需要配合其他后端服务器,如PHP-FPM,Tomcat等
                2.模块相对较少,不如Apache丰富
                3.对Windows支持不太好

        正向代理是指客户端通过代理服务器来访问外部网络,代理服务器将客户端的请求转发给目标服务器,并将获得的内容返回给客户端。正向代理可以隐藏客户端的真实身份,为客户端提供访问控制,缓存等功能。
        反向代理是指外部网络通过代理服务器来访问内部网络,代理服务器将请求转发给后端服务器,并将获得的结果返回给外部网络。反向代理可以隐藏后端服务器的真实身份,为后端服务器提供负载均衡,安全防护,缓存等功能。

        Nginx作为反向代理服务器的工作流程

                1.客户端给服务器发送请求,连接服务器,用户不知道服务器地址,只有反向代理服务器的地址是公开的
                2.请求直接发给反向代理服务器
                3.反向代理服务器将请求转发给后边的web服务器web服务器 N台反向代理服务器转发请求会轮询进行
                4. web服务器收到请求进行处理,得到结果
                5. web服务器将处理结果发送给反向代理服务器
                6.反向代理服务器将拿到的结果转发给客户端

2.工具下载

        使用Nginx需要用到的工具有 pcre库,zlib库,OpenSSL库

             pcre库下载地址:这里

             zlib库下载地址:这里

             OpenSSL库下载地址:这里

             Nginx下载地址:这里

下载好这些包需要上传到服务器,进行解压下载

3.解压安装

        一下面几个包为例

         1.解压安装pcre-8.40.tar.bz2文件

顺序执行以下命令
a.	tar -jxvf pcre-8.40.tar.bz2
b.	cd pcre-8.40/
c.	./configure
d.	make
e.	sudo make install

        2.解压安装zlib-1.2.11.5.tar.gz文件

顺序执行以下命令
a.	tar -zxvf zlib-1.2.11.tar.gz
b.	cd zlib-1.2.11/
c.	./configure
d.	make
e.	sudo make install

        3.解压安装openssl-1.0.1t.tar.gz文件

顺序执行以下命令
a.	tar -zxvf openssl-1.0.1t.tar.gz
b.	cd openssl-1.0.1t/
c.	./config
d.	make
e.	sudo make install

        4.解压安装nginx-1.10.1.tar.gz 文件

顺序执行以下命令
a.	tar -zxvf nginx-1.10.1.tar.gz
b.	cd nginx-1.10.1/
c.	./configure
d.	make
e.	sudo make install

解压之后

注意:在安装nginx文件时如果使用来工作需要同时安装依赖,使用如下命令

#指定了安装目录,以及依赖
sudo ./configure --sbin-path=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.40 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.1t

指定了安装目录在 /usr/local/nginx 下,以及启动文件 nginx 也在该目录下

安装后的目录

 在执行make或者make install命令时,如果出现 all warnings being treated as errors 的问题,表示把警告信息当成错误信息,可以使用如下命令

make -no-warings-are-errors
sudo make install -no-warings-are-errors
  • nginx安装也可以使用 apt-get命令
#使用apt-get命令安装
sudo apt-get install nginx
# nginx文件安装完成之后的文件位置:
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
/var/log/nginx:存放日志
  • nginx的启动关闭命令
#查看nginx的启动转态
ps aux|grep nginx
#启动命令,需要进入到/usr/local/nginx文件下使用
sudo ./nginx
#重新加载
sudo ./nginx -s reload
#停止命令
sudo ./nginx -s stop

#以下是使用yum命令安装时使用的命令
# 要停止Nginx服务,请运行:
sudo systemctl stop nginx
# 要再次启动,请键入:
sudo systemctl start nginx
# 重新启动Nginx服务:
sudo systemctl restart nginx
# 在进行一些配置更改后重新加载Nginx服务:
sudo systemctl reload nginx
# 如果你想禁用Nginx服务在启动时启动:
sudo systemctl disable nginx
# 并重新启用它:
sudo systemctl enable nginx
  • nginx配置文件,这里使用了上面安装依赖以及路径的的命令,需要下载tar.gz文件上传服务器,
user www-data;    #所属用户(权限),可以设置为root
worker_processes auto;    #设置连接的最大线程数
pid /run/nginx.pid;        #在 /run/ 目录下生成pid文件
include /etc/nginx/modules-enabled/*.conf;

# nginx的事件处理
events {    
    use epoll;    #添加该行表示多路IO转接模型使用epoll
	worker_connections 768;    #最大连接数
	# multi_accept on;
}

http {

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	gzip on;
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;

    server{
        listen         80;         #绑定的端口号
        server_name    localhost;  #设定的域名
        charset        utf8;       #编码
        # \ 表示一个指令,相当于 \index.html
        location \ { #处理客户端的请求
            root html; #表示查找的根目录,都是相对于 /usr/local/nginx 目录
           }
        # \hello 表示一个目录
        location \hello\ {
            root html;
           }
        location \upload\ {
            root html;
            index upload.html;#默认打开的网页
           }       
}

作为web服务器配置实例

  • 作为反向代理服务器

存在三个角色:

        1.客户端:使用浏览器作为客户

        2.反向代理服务器:windows下的nginx配置文件

        3.web服务器:使用上面ubuntu中配置好的nginx服务器

  ->配置windows下nginx文件

需要在官网上下载nginx包,以下中随便一个都行

解压出来

 在当前目录右击鼠标在->终端打开,输入下面命令启动服务器

配置方向代理服务器文件,进入conf目录,打开nginx.conf文件,添加以下内容

server {#需要代理几台服务器就需要添加几个server模块
    listen       80;	#客户端反向代理服务器,代理服务器监听的端口
    server_name  test.com;	#域名

location / {
	#反向代理服务器转发指令, http:// 固定
    proxy_pass http://robin.test.com;
   }

   }
#添加一个代理模块
upstream robin.test.com
{
	server 192.168.71.128:80;
}

具体内容

本地host所在的目录->C:\Windows\System32\drivers\etc,需要使用管理员打开host文件

配置内容如下:

  • 负载均衡配置
    反向代理的中间产物
    server{
    	listen 80;
    	server_name test1.com;
    	location \ {
    		porxy_pass http://test1.com;
    	}
    }
    upstream test1.com{
    	server 192.168.247.135:80;
    }
    server{
    	listen 80;
    	server_name test2.com;
    	location \ {
    		porxy_pass http://test2.com;
    	}
    }
    upstream test2.com{
    	server 192.168.247.250:80;
    }
    反向代理变成负载均衡配置项
    server{
    	listen 80;
    	server_name localhost;
    	location \ {
    		proxy_pass http://linux.com
    	}
    }
    upstream linux.com{
    	server 192.168.247.135:80 weight=2;
    	server 192.168.247.250:80 weight=1;
    }


http://www.kler.cn/a/17159.html

相关文章:

  • 提取神经网络数学表达式
  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件
  • SAP_MM_SD_PP_FICO_视频课程几乎免费送
  • 【学习笔记】数据结构(七)
  • Linux设置socks代理
  • Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)
  • ( 数组和矩阵) 697. 数组的度 ——【Leetcode每日一题】
  • 基于springboot的家政服务管理平台(源码,设计文档等)
  • 四元数快速入门【Quaternion】
  • 【软考数据库】第七章 关系数据库
  • 拥抱智能时代:初探RFID系统
  • C++每日一练:小艺照镜子(详解分治法)
  • Sprinboot+Vue前后端分离的电脑手机服装数码产品商城系统
  • 探索Qt线程编程的奥秘:多角度深入剖析
  • 在 Swift 中使用百度地图 SDK
  • Gitlab自动触发jenkins完成自动化构建
  • xcode打包导出ipa
  • 数据结构与算法(十一) 单调栈与单调队列
  • 【华为OD机试 2023最新 】寻找相似单词(C语言题解 100%)
  • Java中的字符串是如何处理的?
  • 【Java入门合集】第二章Java语言基础(二)
  • 【Matlab】基于改进的 Hausdorf 距离的DBSCAN船舶航迹聚类
  • 力扣(LeetCode)1172. 餐盘栈(C++)
  • 电脑中病毒了怎么修复,计算机Windows系统预防faust勒索病毒方法
  • RUST 每日一省:泛型约束——trait
  • Java面试题JVM JDK 和 JRE