nginx官网找到最新稳定版本【http://nginx.org/en/download.html】
安装
cd /usr/local/soft wget http://nginx.org/download/nginx-1.18.0.tar.gz
解压
tar -xzvf nginx-1.18.0.tar.gz
安装依赖环境
# gcc环境:基本运行环境 # pcre:用于nginx的http模块解析正则表达式 # zlib:用户进行gzip压缩 # openssl:用于nginx https协议的传输 yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
编译安装
cd /usr/local/soft/nginx-1.18.0 ./configure --prefix=/usr/local/soft/nginx make && sudo make install cd /usr/local/soft/nginx/
检测安装是否成功
/usr/local/soft/nginx/sbin/nginx -t -c /usr/local/soft/nginx/conf/nginx.conf
启动nginx
# 默认配置文件启动 /usr/local/soft/nginx/sbin/nginx # 指定配置文件启动 ./nginx -c /usr/local/soft/nginx/conf/nginx-domains.conf ./nginx -c /usr/local/soft/nginx/conf/nginx-sdy.conf
浏览器直接访问IP(HTTP协议默认80端口,不需要输入):
http://159.75.79.151/
copy vimfile
# 为了让VIM查看nginx配置文件时语法高亮,需要把相应文件copy到VIM目录。 # 先确定本机的vimfiles目录在哪个位置。 find / -name vimfiles cd /usr/local/soft/nginx-1.18.0 cp -r contrib/vim/* /usr/share/vim/vimfiles/
常用命令,在sbin目录下,l例如【./nginx -v】
nginx -s reopen #重启Nginx nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx nginx -s stop #强制停止Nginx服务 nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务) nginx -t #检测配置文件是否有语法错误,然后退出 nginx -?,-h #打开帮助信息 nginx -v #显示版本信息并退出 nginx -V #显示版本和配置选项信息,然后退出 nginx -t #检测配置文件是否有语法错误,然后退出 nginx -T #检测配置文件是否有语法错误,转储并退出 nginx -q #在检测配置文件期间屏蔽非错误信息 nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/) nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf) nginx -g directives #设置配置文件外的全局指令 killall nginx #杀死所有nginx进程
…
mkdir -p /usr/local/soft/nginx/{conf,conf.d,html,log}
docker run --name nginx01 -d -p 80:80 -v /usr/local/soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/soft/nginx/log:/var/log/nginx -v /usr/local/soft/nginx/html:/usr/share/nginx/html nginx
HTTP 协议是基于应用层的协议,并且在传输层使用的 TCP 的可靠性通信协议
ip确定具体的地址,端口确定地址内的进程,组合在一起确定了某个进程的确定位置
ip不易记住,用域名来方便人脑记忆,通过dns域名解析器来转换
http默认端口是80,https默认端口443
协议://子域名.顶级域名.域名类型/资源路径?参数 http://nginx.org https://www.baidu.com:443 https://www.qq.com https://user.qzone.qq.com/1165069099/infocenter?via=toolbar
描述消息内容类型的因特网标准,常见的几种类型
状态码:描述服务端向客户端返回的请求处理结果状态,浏览器可以知道服务器是正常处理请求还是出现了错误。
常见状态码
- 200:一切正常
- 301:永久重定向
- 404:请求资源不存在
- 500:服务端内部错误
字段 | 含义 |
---|---|
Cache-Control | 控制缓存的行为 |
Connection | 控制不再转发给代理的首部字段、管理持久连接 |
Date | 创建报文的日期时间 |
Pragma | 报文指令 |
Trailer | 报文末端的首部一览 |
Transfer-Encoding | 指定报文主体的传输编码方式 |
Upgrade | 升级为其他协议 |
Via | 代理服务器的相关信息 |
Warning | 错误通知 |
字段 | 含义 |
---|---|
Accept | 用户代理可处理的媒, 本类型 |
Accept-Charset | 优先的字符集 |
Accept-Encoding | 优先的内容编码 |
Accept-Language | 优先的语言(自然语言) |
Authorization | Web认证信息 |
Expect | 期待服务器的特定行为 |
From | 用户的电子邮箱地址 |
Host | 请求资源所在服务器 |
If-Match | 比较实体标记(ETag) |
If-Modified-Since | 比较资源的更新时间 |
If-None-Match | 比较实体标记(与If-Match相反) |
If-Range | 资源未更新时发送实体Byte的范围请求 |
If-Unmodified-Since | 比较资源的更新时间(与If-Modified-Since相反) |
Max-Forwards | 最大传输逐跳数 |
Proxy-Authorization | 代理服务器要求客户端的认证信息 |
Range | 实体的字节范围请求 |
Referer | |
TE | 传输编码的优先级 |
User-Agent | HTTP客户端程序的信息 |
字段 | 含义 |
---|---|
Accept-Ranges | 是否接受字节范围请求 |
Age | 推算资源创建经过时间 |
ETag | 资源的匹配信息 |
Location | 令客户端重定向至指定URI |
Proxy-Authenticate | 代理服务器对客户端的认证信息 |
Retry-After | 对再次发起请求的时机要求 |
Server | HTTP服务器的安装信息 |
Vary | 代理服务器缓存的管理信息 |
WWW-Authenticate | 服务器对客户端的认证信息 |
在内网中开启两个服务
# 服务前缀 test curl http://172.16.0.8:8080/ # 服务前缀 tiger curl http://172.16.0.8:8081/
修改配置文件nginx.conf,部署在【159.75.79.151】中
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ #user nobody; worker_processes auto; error_log /usr/local/soft/nginx/logs/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/soft/nginx/logs/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /usr/local/soft/nginx/conf/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /usr/local/soft/nginx/conf/conf.d/*.conf; # 负载均衡 upstream load_balancing_test { server 159.75.79.151:8080; server 49.234.55.50:8080; server 49.234.55.50:8081; } server { # 对外开放的端口,默认是80 listen 80; # 公网ip或域名 server_name 159.75.79.151; root /usr/share/nginx/html; # Load configuration files for the default server block. include /usr/local/soft/nginx/conf/default.d/*.conf; #location / { #} # 负载均衡测试,访问【http://159.75.79.151/load_balancing_test/tiger/test】 location /load_balancing_test { proxy_http_version 1.1; proxy_pass http://load_balancing_test/; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1000M; } # 服务1映射信息,访问【http://159.75.79.151/test/tiger/test】 location /test { proxy_http_version 1.1; proxy_pass http://172.16.0.8:8080/; # 转换请求方法,默认是get proxy_method POST; # nginx 服务端 ip:port proxy_set_header Host $host:$server_port; #获取 客户端地址设置到 header 中 proxy_set_header X-Real-IP $remote_addr; # 获取所有转发请求的ip地址设置到 header 中 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1000M; } # 服务2映射信息,访问【http://159.75.79.151/tiger/test】 location /tiger { proxy_http_version 1.1; proxy_pass http://172.16.0.8:8081/; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1000M; } # error_page 404 /404.html; # location = /404.html { # } #error_page 500 502 503 504 /50x.html; #location = /50x.html { #} } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /404.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }
…
java -jar xxx.jar --server.port=9090