Nginx のインストールが完了しました。sbin ディレクトリはありません。
cd で nginx-1.18.0 ディレクトリに移動し、
[root@centos7 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx[root@centos7 nginx-1.18.0]# make[root@centos7 nginx-1.18.0]# make install
ps: –prefix=path は、サーバー上にファイルを保存するディレクトリ (nginx のインストール ディレクトリ) を定義します。デフォルトでは、/usr/local/nginx
#ローカルディレクトリにインストールしたnginx1.12.2と同じ階層にnginxディレクトリがあり、その中にsbinディレクトリがあることがわかります。listen:该指令用于配置网络监听。 server_name:该指令用于虚拟主机的配置。 a. 基于名称的虚拟主机配置 b. 基于 IP 地址的虚拟主机配置 location:该指令用于匹配 URL。 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。 location的语法 =开头表示精确匹配 如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。 ^~ 开头表示uri以某个常规字符串开头,不是正则匹配 ~ 开头表示区分大小写的正则匹配; ~* 开头表示不区分大小写的正则匹配 / 通用匹配, 如果没有其它匹配,任何请求都会匹配到 Location正则案例 proxy_pass:该指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式。 语法结构如下: index:该指令用于设置网站的默认首页。 域名重定向 反向代理 使用 nginx 反向代理 www.123.com 直接跳转到127.0.0.1:8080 监听80端口,访问域名为www.123.com,不加端口号时默认为80端口,故访问该域名时会跳转到127.0.0.1:8080路径上。 限流配置 漏桶算法与令牌桶算法区别:主要区别在于“漏桶算法”能够强行限制数据的传输速率, 而“令牌桶算法”在能够限制数据的平均传输速率外,还允许某种程度的突发传输。在“令牌桶算法”中,只要令牌桶中存在令牌,那么就允许突发地传输数据直到达到用户配置的门限,因此它适合于具有突发特性的流量。 Nginx按请求速率限速模块使用的是漏桶算法,即能够强行保证请求的实时处理速度不会超过设置的阈值。 limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 "leaky bucket"。 limit_req_conn 用来限制同一时间连接数,即并发限制。 limit_req_zone 参数配置 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 第一个参数: 第二个参数:zone=one:10m表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息。 第三个参数:rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次,还可以有比如30r/m的。 limit_req zone=one burst=5 nodelay; 第一个参数:zone=one 设置使用哪个配置区域来做限制,与上面limit_req_zone 里的name对应。 第二个参数:burst=5,重点说明一下这个配置,burst爆发的意思,这个配置的意思是设置一个大小为5的缓冲区当有大量请求(爆发)过来时,超过了访问频次限制的请求可以先放到这个缓冲区内。 第三个参数:nodelay,如果设置,超过访问频次而且缓冲区也满了的时候就会直接返回503,如果没有设置,则所有请求会等待排队。 ngx_http_limit_conn_module 参数配置 这个模块用来限制单个IP的请求数。并非所有的连接都被计数。只有在服务器处理了请求并且已经读取了整个请求头时,连接才被计数。 一次只允许每个IP地址一个连接。 负载均衡 keepalive 长连接提高吞吐量 工作方式 轮询方式是Nginx负载默认的方式 权重方式 指定每个服务的权重比例,weight和访问比率成正比 iphash 每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。 最少连接 将请求分配到连接数最少的服务上。 fair 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 Consul+upsync+Nginx 实现无需raload动态负载均衡 https://www.cnblogs.com/a1304908180/p/10697278.html 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件, 因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。 LVS+Keepalived+Nginx+Tomcat搭建高可用双机主从热备集群 https://blog.csdn.net/dsen726/article/details/89519013 需要明确的是: Nginx两台是主备关系,只有一台在工作。后面的tomcat是集群,同时工作的。 keepalived是同时安装在两台Nginx上的,不过文件配置不一样 这里的双机热备是指LVS,Nginx则是集群 keepalived ヘルス チェックとフェイルオーバーは、keepalived の 2 つの中心機能です。いわゆるヘルスチェックでは、TCP スリーウェイ ハンドシェイク、ICMP リクエスト、HTTP リクエスト、UDP エコー リクエストなどを使用して、ロード バランサの背後にある実際のサーバー (通常は実際のビジネスを実行するサーバー) を存続させますが、スイッチングに失敗した場合は、主にアプリケーション アクティブ モードとスタンバイ モードで構成されたロード バランサの場合、VRRP を使用してアクティブ ロード バランサとスタンバイ ロード バランサのハートビートが維持されます。アクティブ ロード バランサに問題が発生した場合、スタンバイ ロード バランサが対応するサービスを実行して、トラフィックを最小限に抑えます。サービスの安定性を提供します。さらに、公開アカウントを検索するときに、Linux はバックグラウンドで「サル」と返信し、サプライズのギフトパッケージを受け取る方法を学習する必要があります。 LVS とは Linux Virtual Server の略で、Linux 仮想サーバーを意味し、仮想サーバークラスタシステムです。 lvs は現在 Linux に統合されています。 基础指令
listen *:80 | *:8080 #监听所有80端口和8080端口listen IP_address:port #监听指定的地址和端口号listen IP_address #监听指定ip地址所有端口listen port #监听该端口的所有IP连接
server_name name ...;
server_name 192.168.1.1
牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧
#精确匹配,/后面不能带任何字符
server {
listen 80;
server_name www.itmayiedu.com;
#精确匹配,注解后面不能带任何字符
location =/ {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
#匹配所有以/开头请求
server {
listen 80;
server_name www.itmayiedu.com;
#匹配所有以/开头请求
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
### 以开头/itmayiedu_8080拦截 默认开启不区分大小写
server {
listen 80;
server_name www.itmayiedu.com;
### 以开头/itmayiedu_8080 最终跳转到http://127.0.0.1:8080/;
location /itmayiedu_8080/ {
proxy_pass http://127.0.0.1:8080/;
index index.html index.htm;
}
### 以开头/itmayiedu_8080 最终跳转到http://127.0.0.1:8081/;
location /itmayiedu_8081/ {
proxy_pass http://127.0.0.1:8081/;
index index.html index.htm;
}
}
### 开头区分大小写
proxy_pass URL;
server
{
listen 80 ;
server_name mxiaoqi.top aaa.com;
if ( $host = mxiaoqi.top )
#增加判断条件,当访问域名是mxiaoqi.top的时候
{
rewrite /(.*) http://aaa.com/$1 permanent;
#把mxiaoqi.top/后面的内容重新写到aaa.com/后面如果后面有多段则使用$2、$3以此类推
#permanent是转发状态码
}
index index.html index.htm index.php;
root /data/wwwroot/mxiaoqi.top;
}
server {
listen 80;
server_name www.123.com;
location / {
proxy_pass http://127.0.0.1:8080;
# 欢迎页面,按照从左到右的顺序查找页面
index index.html index.htm index.jsp;
}
}
Syntax: limit_req zone=name [burst=number] [nodelay];
Default: —
Context: http, server, location
<span style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;word-wrap: break-word !important;font-size: 15px;">$binary_remote_addr</span>
表示通过remote_addr这个标识来做限制,“binary_”的目的是缩写内存占用量,是限制同一客户端ip地址。Syntax: limit_conn zone number;
Default: —
Context: http, server, location
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location /download/ {
limit_conn addr 1;
}
#user nobody;
worker_processes 1;
error_log logs/error.log;# 开启日志
pid logs/nginx.pid;
...
upstream lyf {
server 192.168.37.220:8001; # 3个tomcat服务
server 192.168.37.220:8002;
server 192.168.37.220:8003;
}
server {
listen 80;
server_name 192.168.37.220;# 监听ip
location / {
proxy_pass http://lyf; # 设置代理
index index.html index.htm;
}
}
keepalived :设置长连接处理的数量
proxy_http_version :设置长连接http版本为1.1
proxy_set_header :清除connection header 信息upstream tomcats {
# server 192.168.1.173:8080 max_fails=2 fail_timeout=1s;
server 192.168.1.190:8080;
# server 192.168.1.174:8080 weight=1;
# server 192.168.1.175:8080 weight=1;
keepalive 32;
}
server {
listen 80;
server_name www.tomcats.com;
location / {
proxy_pass http://tomcats;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
upstream dalaoyang-server {
ip_hash;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
upstream dalaoyang-server {
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
fair;
}
# 1. ngix (7 層アプリケーション層ネットワーク負荷分散) 1. 非同期転送、リクエスト データおよび対応するデータは通過する必要がありますngix 、ngix はクライアントとの接続を確立します 2.すべての Tomcat サーバーをポーリングして、リクエストが成功したか、最後の Tomcat サーバーがリクエストに失敗したかを確認します 2. lvs (ネットワーク層 4 層ロード バランシング) 1. 同期転送はリクエスト データを受け取り、lvs がそれをサーバーに転送し、サーバーが直接接続を確立します。 nginx はすべてのトラフィックを負担しなければなりません。1 つの nigx が負担できない場合は、nginx クラスターを構築する必要があります。 ngix ngix 外側の ngix は依然としてすべてのトラフィックを処理する必要があります。 lvs ngix:lvs 同期転送は対応するデータを受け入れません。LVS が DR モードを採用すると、サーバーから返されたコンテンツに応答する必要がありません。 (通常、リクエスト データは比較的小さく、応答データは比較的大きくなります) 静态资源配置 sendfile on | off,文件读取配置 默认sendfile是关闭的,可以配置在http,server,location,if in location中 tcp_nopush on | off,多个包整合 默认是关闭状态,可以在http,server,location中配置,它的作用是在sendfile开启的情况下,提高网络包的传输效率。什么意思呢,假设服务端收到请求,需要推送10个包,为了提高传输效率,这10个包不会一个一个返回给客户端,而是将10个包攒够了后一起返回回去。 tcp_nodelay on | off,网络包的实时性传输 默认开启,可以在http,server,location中配置,它的作用是在keepalive链接下,提高网络包的传输实时性。 gzip on | off,压缩 默认是关闭状态,可以在http,server,location,if in location中配置,作用是压缩传输。一般来说浏览器是可以对压缩后的内容进行解压的。 gzip_comp_level level;压缩级别 默认的压缩级别是1,可以在http,server,location中配置,级别配置的越高,压缩的越好,但是压缩会耗费服务端的计算资源,所以要控制好压缩级别 gzip_http_version 1.0 | 1.1,压缩对http协议的支持 默认对HTTP/1.1协议的请求才会进行gzip压缩,可以配置在http,server,location中配置。当用户想要读取一个1.html文件,首先会在目录中找寻1.html.gz是否存在,所以这就导致了磁盘资源的浪费,必须要存储两份文件。 跨域配置 跨域就是在原站点访问域名不同的其他站点,同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)。 CORS 是跨域资源分享(Cross-Origin Resource Sharing)的缩写。它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。 1、普通跨域请求:只需服务器端设置Access-Control-Allow-Origin 2、带cookie跨域请求:前后端都需要进行设置 防盗链LVS Nginx が必要な理由は何ですか?
location ~ .*\.(jpg|gif|png)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript image/jpeg image/gif image/png;
root /usr/share/nginx/images;
}
location ~ .*\.(txt|xml)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 1;
gzip_types text/plain application/javascript image/jpeg image/gif image/png;
root /usr/share/nginx/code;
}
location ~ ^/download {
gzip_static on;
tcp_nopush on;
root /opt/app/code;
}
###静态资源访问
server {
listen 80;
server_name static.itmayiedu.com;
location /static/imgs {
root F:/;
index index.html index.htm;
}
}
###动态资源访问
server {
listen 80;
server_name www.itmayiedu.com;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
#对源站点验证
valid_referers *.imooc.com;
#非法引入会进入下方判断
if ($invalid_referer) { return 404; }
source: https://www.yuque.com/molizhuzhu/thrgrk/rtslmc
以上が1 つの小さな画像ですべての Nginx を表示の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。