Nginx 部署、反向代理配置、负载均衡
最近我们的angular项目部署,我们采用的的是Nginx,下面对Nginx做一个简单的介绍。
为什么选择Nginx
轻:相比于Apache,同样的web服务器占用的资源少
ASP站长网多线程模式:Nginx拥有多个worker进程,处理请求时是异步非阻塞的
社区活跃
可以做反向代理
支持7层负载均衡。什么是七层负载均衡
配置简单,易上手。这才是我们选择的主要原因。
上一个官方下载下来的文档
PDF幻灯片可以到Linux公社资源站下载:
——————————————分割线——————————————
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2019年资料/3月/22日/Nginx安装部署之反向代理配置与负载均衡/
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
——————————————分割线——————————————
Window下 的 Nginx
虽然一般的服务器都不使用windows系统,我们还是先来一段window的
访问 ngix下载页下载windows 版本的 ngix压缩包
解压到相应的目录下。
打开CMD, cd到解压ngix的目录下,键入 start nginx.exe
打开浏览器,输入localhost/127.0.0.1
上图:
常用命令:
nginx -s stop #停止nginx
nginx -s reload #重新加载nginx配置
nginx -s reopen #重新启动
nginx -s quit #退出nginx
Linux(CentOS) 下的 Nginx
下面是我们真正使用的Linux 下 搭建Nginx,演示时我使用的WM Ware创建的虚拟机。使用putty进行远程连接。注:如果使用服务器操作的话,粘贴可就麻烦了,所以还是用远程连接吧,能直接copy paste命令
菜鸟教程的方法
直接上链接。Nginx安装
官方文档上的方法
cd 到 yum的资源目录下
cd /etc/yum.repos.d/
创建一个文件:nginx.repo,
vi nginx.repo
# 内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
# 文档上的url是http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
# 替换成你的 os 与 版本
# 保存退出
键入如下一系列命令
yum -y install nginx # 安装
systemctl enable nginx #开机自启
systemctl start nginx #启动nginx
firewall-cmd –permanent –zone=public –add-port=80/tcp #永久开启80端口
firewall-cmd –reload #重新加载防火墙
下面我们回到物理机,测试一下虚拟机上的Nginx 服务是否安装成功。在物理机打开浏览器,键入:虚拟机IP:80,上图:
常用命令与Windows相同。
个人建议使用官方上的配置。
说明Angular 项目的打包,并部署到虚拟机的Nginx
在本地找了一个angular项目目录下 ng-build,会生一个dist文件夹
键入如下命令:nginx -t
nginx -t #查看配置文件路径
#结果
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#查看上述路径的文件
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
注意上面最后一句话包含conf.d文件夹下的所有.conf。我们再那个文件夹下找到了default.conf ,编辑default.conf
server {
listen 80;
server_name localhost;
location / {
#root /usr/share/nginx/html;
root /usr/share/nginx/html/dist/demo;
#更改成我们上传的目录一定要写到有index.html那一级
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}