Nginx 服务介绍
静态 / 动态 Web 服务
静态Web服务:nginx,apache,IIS,lighttpd,tengine,openresty-nginx
动态Web服务:tomcat,resin,php,weblogic,jboss
静态Web服务 无法直接处理动态请求(调用数据库),动态Web服务 可以直接处理动态请求(调用数据库)
Nginx 简介
Nginx (engine x) 是一个可靠的高性能的 HTTP 和反向代理 服务, 用于部署轻量级的 Web服务器 / 反向代理服务器 以及 电子邮件(IMAP/POP3)代理服务器,特点是占有内存少,并发能力强
Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Python 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务
Nginx 的优点
- Nginx非常轻量,功能模块少,源代码仅保留HTTP与核心模块代码,其余不够核心代码会作为插件来安装
- 代码模块化 (易读,便于二次开发,对于开发人员非常友好)
- Nginx技术成熟,具备的功能是企业最常使用而且最需要的
- 适合当前主流架构趋势,微服务、云架构、中间层
- 统一技术栈,降低维护成本, 降低技术更新成本
- Nginx 采用了Epoll 模型(Apache 采用了 Select 模型)
Nginx 和 Apache 的比较
Nginx 的安装
选择 Nginx 官网的安装包,若不想源码安装,可以配置yum仓库,配置nginx官方源,可以省去安装依赖包的麻烦
# 添加 Nginx 官方源(稳定版)
[root@web01 ~]# vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 安装
[root@web01 ~]# yum -y install nginx
# Nginx 管理
[root@web01 ~]# systemctl enable nginx
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl stop nginx
[root@web01 ~]# systemctl restart nginx
[root@web01 ~]# systemctl reload nginx
[root@web01 ~]# nginx
[root@web01 ~]# nginx -s stop
[root@web01 ~]# nginx -s reload
# 查看 Nginx 配置文件格式是否有错误
[root@web01 logrotate.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# 查看 Nginx 的版本
[root@web01 logrotate.d]# nginx -v
nginx version: nginx/1.18.0
# 查看 Nginx 的版本 以及 编译信息(可选模块,文件目录,......)
[root@web01 logrotate.d]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
[root@web01 logrotate.d]#
Nginx 相关文件
# 查看 nginx 所有的 配置文件
[root@web01 ~]# rpm -qc nginx
/etc/logrotate.d/nginx
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
# nginx 的主配置文件
[root@web01 ~]# ll /etc/nginx/nginx.conf
-rw-r--r-- 1 root root 643 Apr 21 23:05 /etc/nginx/nginx.conf
# nginx 的默认配置文件(删除即可)
[root@web01 ~]# ll /etc/nginx/conf.d/default.conf
-rw-r--r-- 1 root root 1093 Apr 21 23:05 /etc/nginx/conf.d/default.conf
# nginx 的代理文件
[root@web01 ~]# ll /etc/nginx/*_params
-rw-r--r-- 1 root root 1007 Apr 21 23:07 /etc/nginx/fastcgi_params
-rw-r--r-- 1 root root 636 Apr 21 23:07 /etc/nginx/scgi_params
-rw-r--r-- 1 root root 664 Apr 21 23:07 /etc/nginx/uwsgi_params
# nginx 的字符编码文件
[root@web01 ~]# ll /etc/nginx/*-*
-rw-r--r-- 1 root root 2837 Apr 21 23:07 /etc/nginx/koi-utf
-rw-r--r-- 1 root root 2223 Apr 21 23:07 /etc/nginx/koi-win
-rw-r--r-- 1 root root 3610 Apr 21 23:07 /etc/nginx/win-utf
# 返回给浏览器 Content Type 的MIME类型
[root@web01 ~]# ll /etc/nginx/mime.types
-rw-r--r-- 1 root root 5231 Apr 21 23:07 /etc/nginx/mime.types
# nginx 相关命令文件
[root@web01 ~]# ll /usr/sbin/nginx*
-rwxr-xr-x 1 root root 1342640 Apr 21 23:07 /usr/sbin/nginx
-rwxr-xr-x 1 root root 1461544 Apr 21 23:07 /usr/sbin/nginx-debug
# nginx 日志文件
[root@web01 ~]# ll /var/log/nginx/*.log
-rw-r----- 1 nginx adm 588 May 14 15:24 /var/log/nginx/access.log
-rw-r----- 1 nginx adm 1212 May 14 22:25 /var/log/nginx/error.log
# nginx 日志切割配置文件
[root@web01 ~]# ll /etc/logrotate.d/nginx
-rw-r--r-- 1 root root 351 Apr 21 23:05 /etc/logrotate.d/nginx
Nginx 主配置文件
Nginx 的主配置文件即 /etc/nginx/nginx.conf
,共划分为三个模块,分别是CoreModule(核心模块)
,EventModule(事件驱动模块)
,HttpCoreModule(http内核模块)
######################### CoreModule(核心模块)##############################
# Nginx进程所使用的用户
user nginx;
# Nginx运行的work进程数量(建议与CPU数量一致或auto)
worker_processes 1;
# Nginx错误日志存放路径,以及相应的日志级别(warn,error,crit)
# 共有 debug,info,notice,warn,error,crit 几个级别,如果是 warn 输出 warn 级别以后的全部级别内容
# error_log /log/nginx/error.log notice;
# error_log /log/nginx/error.log info;
error_log /log/nginx/error.log warn;
# Nginx服务运行后,进程ID存储文件的位置
pid /var/run/nginx.pid;
######################### EventModule(事件驱动模块) ##########################
events {
# 每个worker进程支持的最大连接数
worker_connections 25535;
# 事件驱动模型, 默认为 epoll
use epoll;
}
######################### HttpCoreModule(http内核模块) ######################
http {
# http 传输的文件类型
include /etc/nginx/mime.types;
# 默认文件类型,当文件类型未定义时使用此类型(text.txt 在浏览器中点击可以直接查看, text 则会被下载 )
default_type application/octet-stream;
# 指定 nginx 日志的输出格式,可以自定义(diy)
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format diy '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 指定访问日志的路径,以及日志的输出格式
access_log /var/log/nginx/access.log main;
access_log /var/log/nginx/diy_access.log diy;
# 开启/关闭 高效文件传输模式
sendfile on;
# 搭配sendfile使用
#tcp_nopush on;
# 客户端连接超时时间(长连接)
keepalive_timeout 65;
# 是否开启 gzip 压缩
#gzip on;
# 包含以下目录中所有以.conf结尾的 子配置文件
include /etc/nginx/conf.d/*.conf;
}
Nginx 虚拟主机配置文件
# 虚拟主机配置
server {
# 监听 80端口
listen 80;
# 域名,或者IP
server_name localhost;
# 字符集
#charset koi8-r;
# 日志 ( server 中的局部 access_log 配置,若此处配置,主配置文件 nginx.conf 中 HTTP层中的局部 access_log 配置失效)
#access_log /var/log/nginx/host.access.log main;
# 网站访问的 URL 路径 (根目录)
location / {
# 站点目录
root /usr/share/nginx/html;
# 默认页面
index index.html index.htm;
# 日志 ( location 中的局部 access_log 配置,若此处配置,server 中的局部 access_log 配置失效)
#access_log /var/log/nginx/host.access.log main;
}
# 网站访问的 URL 路径 (/abc 目录)
location /abc {
# 站点目录
root /usr/share/nginx/html/abc;
# 默认页面
index abc.html abc.htm;
# 日志 ( location 子 URL 路径(/abc目录)中的局部 access_log 配置,若此处配置, location URL 父路径(根目录)中的局部 access_log 配置失效)
#access_log /var/log/nginx/abc.access.log main;
}
# 404 错误页面的路径
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
# 5xx 错误页面的路径
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# PHP 代理配置
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
虚拟主机配置方案
基于IP
基于服务器主机多 IP 的配置,两种方式:
- 配置单台服务器多网卡,多 IP 的方式
- 配置单台服务器单网卡,多 VIP 的方式
# 配置多网卡(略)
# 配置单网卡,多 VIP 的方式
[root@web01 ~]# ifconfig eth0:0 10.0.0.77/24
[root@web01 ~]# ifconfig eth0:1 10.0.0.88/24
[root@web01 ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:dd:24:04 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 10.0.0.77/24 brd 10.0.0.255 scope global secondary eth0:0 <------- 虚拟网卡 eth0:0
valid_lft forever preferred_lft forever
inet 10.0.0.88/24 brd 10.0.0.255 scope global secondary eth0:1 <------- 虚拟网卡 eht0:1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fedd:2404/64 scope link
valid_lft forever preferred_lft forever
# 虚拟主机配置文件
[root@web01 ~]# ll /etc/nginx/conf.d/
total 12
-rw-r--r-- 1 root root 122 May 15 11:10 blog.wqh.com.conf
-rw-r--r-- 1 root root 126 May 15 11:09 download.wqh.com.conf
-rw-r--r-- 1 root root 124 May 15 11:10 search.wqh.com.conf
[root@web01 ~]# cat /etc/nginx/conf.d/blog.wqh.com.conf
server {
listen 80;
server_name 10.0.0.7;
location / {
root /code/blog;
index index.html;
}
}
[root@web01 ~]# cat /etc/nginx/conf.d/download.wqh.com.conf
server {
listen 80;
server_name 10.0.0.77;
location / {
root /code/download;
index index.html;
}
}
[root@web01 ~]# cat /etc/nginx/conf.d/search.wqh.com.conf
server {
listen 80;
server_name 10.0.0.88;
location / {
root /code/search;
index index.html;
}
}
# 检查 nginx 格式
[root@web01 ~]# nginx -t
# 重新加载 nginx 服务
[root@web01 ~]# systemctl reload nginx
配置单台服务器单网卡,多 VIP 的方式:
基于端口
[root@web01 ~]# cat /etc/nginx/conf.d/blog.wqh.com.conf
server {
listen 81;
server_name 10.0.0.7;
location / {
root /code/blog;
index index.html;
}
}
[root@web01 ~]# cat /etc/nginx/conf.d/download.wqh.com.conf
server {
listen 82;
server_name 10.0.0.7;
location / {
root /code/download;
index index.html;
}
}
[root@web01 ~]# cat /etc/nginx/conf.d/search.wqh.com.conf
server {
listen 83;
server_name 10.0.0.7;
location / {
root /code/search;
index index.html;
}
}
# 重新加载 nginx 服务
[root@web01 ~]# systemctl reload nginx
基于域名
# 需要在 C:\Windows\System32\drivers\etc\hosts 文件中添加本地域名解析,才可以用网页打开
[root@web01 ~]# cat /etc/nginx/conf.d/blog.wqh.com.conf
server {
listen 80;
server_name blog.wqh.com;
location / {
root /code/blog;
index index.html;
}
}
[root@web01 ~]# cat /etc/nginx/conf.d/download.wqh.com.conf
server {
listen 80;
server_name download.wqh.com;
location / {
root /code/download;
index index.html;
}
}
[root@web01 ~]# cat /etc/nginx/conf.d/search.wqh.com.conf
server {
listen 80;
server_name search.wqh.com;
location / {
root /code/search;
index index.html;
}
}
# 重新加载 nginx 服务
[root@web01 ~]# systemctl reload nginx
Nginx 日志管理
log_format 详解
# log_format 日志输出格式 语法
Syntax: log_format name [escape=default|json] string ...;
Default: log_format combined "...";
Context: http
# 主配置文件中默认的 log_format 日志输出格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 各字段含义
$remote_addr # 记录客户端IP地址
$remote_user # 记录客户端用户名
$time_local # 记录通用的本地时间
$time_iso8601 # 记录ISO8601标准格式下的本地时间
$request # 记录请求的方法以及请求的http协议
$status # 记录请求状态码(用于定位错误信息)
$body_bytes_sent # 发送给客户端的资源字节数,不包括响应头的大小
$bytes_sent # 发送给客户端的总字节数
$msec # 日志写入时间。单位为秒,精度是毫秒。
$http_referer # 记录从哪个页面链接访问过来的
$http_user_agent # 记录客户端浏览器相关信息
$http_x_forwarded_for #记录客户端IP地址
$request_length # 请求的长度(包括请求行, 请求头和请求正文)。
$request_time # 请求花费的时间,单位为秒,精度毫秒
# 注:如果Nginx位于负载均衡器,nginx反向代理之后, web服务器无法直接获取到客 户端真实的IP地址。
# $remote_addr获取的是反向代理的IP地址。 反向代理服务器在转发请求的http头信息中,
# 增加X-Forwarded-For信息,用来记录客户端IP地址和客户端请求的服务器地址。
# access_log 日志配置 语法(文件路径[path],日志输出格式[format],缓冲区大小[buffer].......)
Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off; <--------------------- 不开启日志
Default: access_log logs/access.log combined;
Context: http, server, location, if in location, limit_except
# 日志配置示例
server {
listen 80;
server_name www.wqh.com;
#将当前的server网站的访问日志记录至对应的目录,使用main格式
access_log /var/log/nginx/www.wqh.com.log main;
location / {
root /code/html/;
}
#当有人请求 favicon.ico 时,不记录日志, favicon.ico 一般是网站标签的图标
location /favicon.ico {
access_log off;
return 200;
}
}
nginx 日志切割
# 查看系统日志切割配置文件
[root@web01 ~]# cat /etc/logrotate.d/nginx
# 日志切割的文件路径
/var/log/nginx/*.log {
# 切割日志的周期,此处为 1 天
daily
# 忽略丢失日志 ———————— 执行切割日志的过程中,任何错误将被忽略,如果日志不存在,则忽略该日志的警告信息
missingok
# 留存的日志的周期数,此处为 52 天
rotate 52
# 已经切割的日志,将使用 gzip 进行压缩
compress
# 延迟 gzip 压缩,不立即执行压缩
delaycompress
# 忽略空文件 ———————— 如果日志文件为空,则不会切割(不做操作)
notifempty
# 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件(access.log-xxxxxxxx.gz)
create 640 nginx adm
sharedscripts
# 在所有其它指令完成后,postrotate 和 endscript 里面指定的命令将被执行
postrotate
if [ -f /var/run/nginx.pid ]; then
# USR1 通常被用来告知应用程序重载配置文件,此处重载 nginx 守护进程(重新加载 access_log 配置)
kill -USR1 `cat /var/run/nginx.pid`
# 重新加载 access_log 配置后,就会重新创建一个新的日志文件,写入日志内容
fi
endscript
}
# 其他字段含义
compress # 通过gzip压缩转储以后的日志
nocompress # 不压缩
copytruncate # 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate # 备份日志文件但是不截断
create mode owner group # 转储文件,使用指定的文件模式创建新的日志文件
nocreate # 不建立新的日志文件
delaycompress 和 compress # 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress # 覆盖 delaycompress 选项,转储同时压缩。
errors address # 专储时的错误信息发送到指定的Email 地址
ifempty # 即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty # 如果是空文件的话,不转储
mail address # 把转储的日志文件发送到指定的E-mail 地址
nomail # 转储时不发送日志文件
olddir directory # 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir # 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript # 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript # 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily # 指定转储周期为每天
weekly # 指定转储周期为每周
monthly # 指定转储周期为每月
rotate COUNT # 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate # 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size SIZE # 当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)
# 日志切割的文件(没有 16号 日志文件(为空),没有切割)
[root@web01 ~]# ll /var/log/nginx/
total 36
-rw-r----- 1 nginx adm 8012 May 17 17:09 access.log
-rw-r----- 1 nginx adm 234 May 14 15:24 access.log-20200515.gz
-rw-r----- 1 nginx adm 4299 May 15 11:10 access.log-20200516
-rw-r----- 1 nginx adm 7213 May 17 17:09 error.log
-rw-r----- 1 nginx adm 341 May 14 22:25 error.log-20200515.gz
-rw-r----- 1 nginx adm 2770 May 15 11:10 error.log-20200516
Nginx 服务介绍的更多相关文章
- Nginx服务配置文件介绍
LNMP架构应用实战——Nginx服务配置文件介绍 nginx的配置文件比较简单,但功能相当强大,可以自由灵活的进行相关配置,因此,还是了解下其配置文件的一此信息 1.Nginx服务目录结构介绍 安装 ...
- Nginx服务安装配置
1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...
- Nginx-->基础-->理论-->001:Nginx基本介绍
一.nginx基本介绍 传统上基于进程或者线程模型架构的web服务通过每进程或者每线程处理并发连接请求,这势必毁在网络和I/O操作时产生阻塞,其另外一个必然结果则是对内存和CPU的利用率低下,产生一个 ...
- nginx服务部署 说明
第1章 常用的软件 1.1 常用来提供静态服务的软件 Apache :这是中小型Web服务的主流,Web服务器中的老大哥, Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...
- Nginx服务编译安装、日志功能、状态模块及访问认证模式实操
系统环境 [root@web ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web ~]# uname -a Linux d ...
- Chris Richardson微服务翻译:微服务介绍
作者简介:Chris Richardson,世界著名的软件架构师,经典著作<POJOS IN ACTION>的作者,cloudfoundry.com 的创始人 微服务目前正受到大量的关注, ...
- 我眼中的 Nginx(四):是什么让你的 Nginx 服务退出这么慢?
张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护.Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的 ...
- 【实战分享】又拍云 OpenResty / Nginx 服务优化实践
2018 年 11 月 17 日,由 OpenResty 主办的 OpenResty Con 2018 在杭州举行.本次 OpenResty Con 的主题涉及 OpenResty 的新开源特性.业界 ...
- Nginx的介绍和安装详解
[介绍+安装]Nginx的介绍和安装详解 == 介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx ...
随机推荐
- UNDO表空间切换步骤
1.新建UNDO表空间 create undo tablespace UNDOTBS2 datafile '/data01/testdb/undotbs01.dbf' size 1G; alter d ...
- webapi Swagger 配置 services.BuildServiceProvider() 报警 ASP0000 问题处理
问题起源 网上的常见配置 Swagger 配置 在Startup类的 ConfigureServices 使用 services.BuildServiceProvider() ,其中有段代码如下: v ...
- 镍氢可充电电池2.4V转3.3V,2V转3.3V稳压供电输出电路图
PW5100可以实现2.4V转3.3V,2V转3.3V的稳压电源电路,输出电流500MA.静态电流10uA,SOT23-5封装.输出纹波低,轻载性能高(轻载电感推荐6.8UH-10UH). PW510 ...
- 安卓开发视频教程!想找工作的你还不看这份资料就晚了!Android校招面试指南
前言 准备面试其实已经准备了挺久了,当时打算面试准备了差不多以后,跟公司谈谈涨薪的事情,谈不拢的话,就年后直接找其他的公司.谁想到婚假还没休完,老板就在公司宣布了撤出上海的决定,愿意去深圳的就去,不愿 ...
- 推荐大家去撸60元的阿里云ACA DevOps认证
要试题的右边扫码支付10元,私聊博客哈,说出你微信号,留下邮箱,发你邮箱Pdf文件,这么便宜拿证!!
- 不错的网站压力测试工具webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.前期准备:yum install ...
- 内联扩展 inline expansion An Inline Function is As Fast As a Macro 与宏的比较
让编译器直接将完整的函数体插入到每一个调用该函数的地方,从而提高函数调用的运行速度. 优秀的JIT编译器会通过侦测运行信息,仅将需要频繁运行的瓶颈部分进行编译,从而大大削减编译所需的时间. 而且,利用 ...
- JVM调优 jdk版本 机器配置 建议jvm参数 备注
https://juejin.im/post/5b091ee35188253892389683 大型跨境电商JVM调优经历 前提:某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的 ...
- windows10 中 svn 代码统计工具 StatSVN 使用详解
1.下载TortoiseSVN 下载地址 ps:安装时务必选上命令行的svn命令. 2.下载StatSVN 官网地址 官网上目前时0.7.0版本,我的svn是1.12.0版本,运行时会报错: 所以建议 ...
- Android使用代码开关Location服务
Android系统中,只有系统设置里面有入口开关位置服务.其他的应用应该怎么去开关这个服务呢? 首先,应用需要有系统权限(签名),在这基础上,我们就可以通过一些手段来实现这个功能. 这里要注意一点,不 ...