PM2&Nginx:
npm install pm2 -g
yum install nginx -y
启动Nginx并设置开机自动运行
systemctl start nginx.service
systemctl enable nginx.service
创建全局命令
ln -s /usr/sbin/nginx /usr/local/bin/nginx
主要文件位置
which nginx # or whereis nginx
:查看主程序文件/etc/init.d/
:下创建了启动脚本nginx(需手动配置),支持service nginx start
命令/var/log/nginx
:日志文件夹,/var/log/nginx/error.log
:错误日志文件,/var/log/nginx/access.log
:访问日志文件/etc/nginx/nginx.conf
:Nginx全局站点配置文件,日志文件可以在/etc/nginx/nginx.conf
中配置,默认读取的配置文件/etc/nginx/conf.d
:自定义Nginx站点配置文件存放目录/etc/nginx/conf.d/default.conf
:网站默认站点配置/usr/share/nginx/html
:网站文件默认存放目录sites-available
:则是管理大量站点时服务器的一种通用配置。sites-enabled
:则是一种单独配置,需要使用enabled
时,需要使用ln
命令软连接到相应网站。
cd /etc/nginx
cat nginx.conf | grep -v '#' #查看nginx配置文件
user nginx; # 运行的用户 cat /etc/group 查看所有用户 worker_processes auto; # 启动进程,通常设置成和cpu的数量相等 #全局错误日志及PID文件 error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; #工作模式及连接数上限 events { worker_connections 1024; #单个后台worker process进程的最大并发链接数 } #设定http服务器,利用它的反向代理功能提供负载均衡支持 http { 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; tcp_nodelay on; keepalive_timeout 65; #连接超时时间 types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; server { listen 80 default_server; # 监听的端口 listen [::]:80 default_server; server_name _; # 用域名方式访问的地址 root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; # 一个server里可以有多个location location / { # 当是/的时候, root /usr/share/nginx/html; # root是存放首页的路径 index index.html index.htm; # 访问的页面,访问index.html } error_page 404 /404.html; # 当访问错误的时候,会显示的页面 location = /40x.html { } error_page 500 502 503 504 /50x.html; # 当访问错误的时候,会显示的页面 location = /50x.html { } #静态文件,nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ { root /var/www/virtual/htdocs; #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。 expires 30d; } } }
编辑 /etc/nginx/nginx.conf 在 http {}中添加
include /etc/nginx/sites-enabled/*;
在/etc/nginx 目录下自己创建sites-enabled和sites-available文件夹
配置文件放在sites-avaliable
文件夹中,需要创建软连接在sites-enabled
中
cd /etc/nginx
mkdir sites-enabled
mkdie sites-available
cd sites-available
vim test.conf
#设定负载均衡的服务器列表
upstream mysvr {
#weigth参数表示权值,权值越高被分配到的几率越大
#本机上的Squid开启3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}
server {
listen 80;
server_name <IP地址> www.xxx.com;
location / {
# 将server 80商品反向代理到3000/4000
proxy_pass http://mysvr;
}
}
ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf
其他属性:
- max_fails属性,默认为1,表示服务器失败的最多次数,如果超过该值,表示在fail_timeout时间内请求将不再分配到该服务器上。 如果设置为0,Nginx会将这台Server置为永久无效状态
- fail_timeout属性,默认为10秒,表示服务器的失败无效时长
- backup属性,备份机,所有服务器失效了之后,启用该服务器
- down属性,表示该台服务器无效
upstream tomcats { #表示100服务器的分配比例是2,失败最大次数为3,失败后重新失效时长为15秒 server 192.168.0.100:8080 weight=2 max_fails=3 fail_timeout=15; #表示101服务器无效 server 192.168.0.101:8080 down; #表示102服务器为备份服务器 server 192.168.0.102:8080 backup; }
- max_conns:表示该服务器的最大连接数量,默认为0,表示不限制。注意:1.5.9之后的版本才有这个配置
编写node项目文件,并使用pm2启动3000,4000端口
netstat -tpln # 查看端口情况
Nginx常用命令
名称 | 命令 |
---|---|
指定配置文件启动nginx | nginx -c /etc/nginx/nginx.conf |
关闭nginx,完整有序的停止nginx,保存相关信息 | nginx -s quit |
关闭nginx,快速停止nginx,可能并不保存相关信息 | nginx -s stop |
重新载入nginx,当配置信息修改需要重新加载配置是使用 | nginx -s reload |
测试nginx配置文件是否正确 | nginx -t -c /etc/nginx/nginx.conf |
CentOS7.x命令 | |
systemctl start [unit type] | 启动服务 |
systemctl restart [unit type] | 重启服务 |
systemctl status [unit type] | 服务状态 |
systemctl stop [unit type] | 停止服务 |
systemctl enable [unit type] | 设置服务开机启动 |
systemctl disable [unit type] | 设备服务禁止开机启动 |
systemctl is-active [unit type] | 查看服务是否运行 |
systemctl is-enable [unit type] | 查看服务是否设置为开机启动 |
从CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon命令:
例:使用 systemctl start nginx 代替 service nginx start