✨✨安装 nginx-1.9.0.tar.gz
tar xf nginx-1.9.0.tar.gz
cd nginx-1.9.0.
依赖包: yum install -y pcre-devel zlib-devel gcc*
cd nginx-1.9.0
./configure --prefix=/usr/local/nginx (安装成功有提示一下文件路径文件名称)
nginx path prefix: "/usr/local/nginx" #安装目录 nginx binary file: "/usr/local/nginx/sbin/nginx" 执行文件 nginx configuration prefix: "/usr/local/nginx/conf" 配置文件路径 nginx configuration file: "/usr/local/nginx/conf/nginx.conf" 配置文件名称 nginx pid file: "/usr/local/nginx/logs/nginx.pid" pid nginx error log file: "/usr/local/nginx/logs/error.log" 错误日志文件 nginx http access log file: "/usr/local/nginx/logs/access.log" 访问日志 nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"
make && make install
到此安装结束
启动 /usr/local/nginx/sbin/nginx
重启 /usr/local/nginx/sbin/nginx -s reload
停止 /usr/local/nginx/sbin/nginx -s stop
访问:服务器ip地址80端口 即可出现nginx欢迎界面。
✨✨基本配置 虚拟主机
/usr/local/nginx/conf 配置文件目录 nginx.conf
user nobody; #已那个用户启动nginx 你也可以用nginx worker_processes 1; #指定一个父进程 开启几个子进程 进程数尽量跟cpu核心数一致 #error_log logs/error.log; #错误日志 #error_log logs/error.log notice; #日志级别 #error_log logs/error.log info; #pid logs/nginx.pid; #pid文件 events { #工作模式 worker_connections 1024; #链接上线 一个子进程可以又多少线程 一般修改这么值 都是从小往大了修改 进程数*线程数=并发 } http { #设定http服务器 include mime.types; #nginx包含类型文件 default_type application/octet-stream; #默认 #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 logs/access.log main; #访问日志 sendfile on; #是否调用sendfile函数 如果做下载服务器最好是off #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #链接超时时间 #gzip on; #是否开启压缩 server { #一个server 就是一个网站 写多个 就是虚拟主机 listen 80; #端口 server_name localhost; #服务的名称 #charset koi8-r; #字符编码 #access_log logs/host.access.log main; #访问日志 location / { #默认请求 安装路径的html目录为根 root html; #根 index index.html index.htm; #定义页面文件叫什么名字 先写谁就找谁 } #error_page 404 /404.html; #错误页面 # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; #错误页面 location = /50x.html { #页面文件名字 root html; #谁为根 }
(1)虚拟主机
vim conf/nginx.conf
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 5; server { #虚拟主机1端口80 listen 80; server_name localhost; location / { root html; index index.html index.htm; } } server { #虚拟主机2 端口8080 listen 8080; server_name localhost; location / { root www; #目录根 / 安装目录为根 index index.html index.htm; #根下的www目录找文件 第一个index.html } } }
(2) 基于不同ip虚拟主机
临时生成网卡 ifconfig ens33:0 192.168.13.149
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 5; server { listen 192.168.13.148:80; #没什么可说的 #虚拟主机1 server_name localhost; location / { root html; index index.html index.htm; } } server { listen 192.168.13.149:80; #绑定一个ip就成 #虚拟主机2 server_name localhost; location / { root www; index index.html index.htm; } } }
(3)基于名字的虚拟主机
修改/etc/hosts
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 5; server { listen 80; server_name www.a.com; #基于名字 虚拟主机1 location / { root html; index index.html index.htm; } } server { listen 80; server_name www.b.com; #基于名字 虚拟主机2 location / { root www; index index.html index.htm; } } }
✨✨url重写
rewrite ^/(.*) http://www.czlun.com/$1 permanent; 说明: rewrite为固定关键字,表示开始进行rewrite匹配规则 regex部分是 ^/(.*) ,这是一个正则表达式,匹配完整的域名和后面的路径地址 replacement部分是http://www.abc.com/$1 $1,是取自regex部分()里的内容。匹配成功后跳转到的URL。 flag部分 permanent表示永久301重定向标记,即跳转到新的 http://www.abc.com/$1 地址上
配置文件
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 5; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; rewrite ^/(.*) http://www.abc.com/$1; #访问本机80端口时候跳转 www.abc.com } } }
✨✨防盗链
概述:
对于图片来说,A网站,如果想使用B网站的图片,可以直接写上B网站图片的链接地址,或者将B网站的图片通过右键另存为的方式下载到本地,然后在页面上使用。如果B网站不想A网站这么干了,那么B网站可以采取防盗链的措施来干这个工作,结果就是,A网站想请求所需要的资源,通过url的方式,获取的可能不是原来的图片了,出现404或者别的图片替代了。如果通过浏览器直接打开图片url,那么仍然有可能显示403,这就是防盗链。
配置文件:
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 5; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } location ~* .(gif|jpe?g|png|swf|flv)$ { #匹配这些结尾的 valid_referers none blocked *.baidu.com; #不带有referers字样的包 又防火强(blocked)字样的 允许百度 if ($invalid_referer) { #其余都返回403 return 403; } } } }
✨✨限速
配置文件:
user www; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 5; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; limit_rate 100k; #每秒下载速度为100k limit_rate_after 500m; #下载500m时,开始限速 } } }
nginx只支持容量下载控制,如果想按照百分比下载,即可以安装插件,方可实现百分比下载控制。
老方式:
limit_zone vfast $binary_remote_add 10M; 定义一个叫vfast限速区域,它的总带宽为10M
limit_conn vfast 2; 限制最多链接两个
新方式:
limit_conn_zone $binary_remote_addr zone=vfast:10M; #定义一个叫vfast限速区域,它的总带宽为10M
limit_conn vfast 2; 限制最多链接两个