nginx安装及使用
(新手笔记,狂神)
**本篇依据狂神瑞吉外卖项目优化部分进行记录
ps:我的虚拟机是utubun系统
nginx安装
到nginx官网上下载相应的安装包即可,http://nginx.org/en/download.html;
安装前要下载依赖,可以参考下面博客:
ubuntu下安装nginx时PCRE库、zlib库、OpenSSL库的安装
如果出现
下载好后解压在linux中。之后按照下面步骤来。
nginx常用命令
1、查看版本:./nginx -v
2、检查配置文件正确性
(在sbin目录下执行)
启动nginx前可以检查conf/nginx.conf文件配置是否有错:./nginx -t
看到test failed。搜索博客(流汗)启动nginx提示:nginx: [alert] could not open error log file: open() “/usr/local/nginx/logs/error.log“
但是还是报错,最后发现权限不够,加上sudo就行了(之后的命令也要在root下执行)。
3、启动和停止
(在sbin目录下执行)
启动Nginx服务使用如下命令:
./nginx
停止Nginx服务使用如下命令:
./nginx -s stop
启动完成后可以查看Nginx进程:
ps -ef | grep nginx
可以使用ip访问nginx首页(默认80端口,记得关闭防火墙或者开放端口)
4、
重新加载配置文件:
当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置件:
./nginx -s reload
5、配置nginx二进制文件路径到环境变量。
没有配置nginx二进制文件路径到环境变量时是需要到sbin目录下执行相关操作的,非常麻烦。
打开/etc/profile文件,在path中加入nginx的路径
重新加载:etc/proofile文件
sudo source /etc/profile
这时又提示找不到source命令,
使用su切换到root再执行
su
source /etc/profile
之后使用也要在root下进行。
nginx配置文件结构
Nginx配置文件(conf/nginx.conf)整体分为三部分:
●全局块
和Nginx运行相关的全局配置
●events块
和网络连接相关的配置
●http块
代理、缓存、日志记录、虚拟主机配置
http全局块
Server块
Server全局块
location块
注意: http块中可以配置多个Server块,每个Server块中可以配置多个location块。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
nginx具体应用
●部署静态资源
●反向代理
●负载均衡
部署静态资源
Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、cSs文件、js文件、图片、视频等资源。
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
server {
listen 80;#监听端口
server_name localhost;服务器名称
location / {#匹配客户端请求url
root html;#指定静态资源根目录
index index.html;#指定默认首页
}
}
例如将hello文件放在html文件夹下,就可以访问了
反向代理
1、反向代理
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。
用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
2、配置反向代理
server {
listen 82;
server_name localhost;
location / {
proxy_pass http://192.168.138.101:8080;#反向代理配置,将请求转发到指定服务
}
}
负载均衡
1、负载均衡
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。
应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
2、负载均衡配置
upstream targetserver{#upstream指令可以定义一组服务器
server 192.168.138.101:8080;
server 192.168.138.101:8081;
}
server {
listen8080;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}
3、负载均衡策略