参考链接🔗
nginx配置文件
...
#全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等
events {
#events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等
...
}
http
#http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等
{
... #http全局块
server
#server块:配置虚拟主机的相关参数,一个http中可以有多个server
{
... #server全局块
location [PATTERN]
#location块:配置请求的路由,以及各种页面的处理情况
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... #http全局块
}
静态HTTP服务器
Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端
server {
listen 80; # 端口号
location / {
root /usr/share/nginx/html; # 静态文件路径
}
}
负载均衡
upstream myapp {
server 192.168.20.1:8080 weight=3; # 该服务器处理3/4请求
server 192.168.20.2:8080; # weight默认为1,该服务器处理1/4请求
}
server {
listen80;
location / {
proxy_pass http://myapp;
}
}
虚拟主机
server {
listen 80 default_server;
server_name _;
return 444; # 过滤其他域名的请求,返回444状态码
}
server {
listen 80;
server_name www.aaa.com; # www.aaa.com域名
location / {
proxy_pass http://localhost:8080; # 对应端口号8080
}
}
server {
listen80;
server_name www.bbb.com; # www.bbb.com域名
location / {
proxy_pass http://localhost:8081; # 对应端口号8081
}
}
相关概念
代理服务器
代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端
正向代理
正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取的内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端必须要进行一些特别的设置才能使用正向代理
反向代理
服务器端接收客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端
负载均衡、虚拟主机等,都基于反向代理实现
负载均衡
将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理
同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。
虚拟主机
有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上
例如将www.aaa.com和www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机
用到的命令
//查看文件所在目录
find / -name nginx
./usr/local/nginx
用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下
//启动
systemctl start nginx.service
或者 /usr/local/nginx/sbin/nginx
//重启nginx
/usr/local/nginx/sbin/nginx -s reload
//若有报错,查询nginx,直接Kill掉再执行
ps -ef|grep nginx
kill -9 进程id
//查看MySQL运行状态
systemctl status mysqld.service
//启动MySQL
systemctl start mysqld.service