目录
一.yum方式安装
1.安装 pcre 依赖
http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/pcre2-10.23-2.el7.x86_64.rpm
2.安装
rpm -ivh pcre2-10.23-2.el7.x86_64.rpm
3.nginx下载地址,最新版
http://nginx.org/packages/centos/7/x86_64/RPMS/
4.安装 nginx
rpm -ivh nginx-1.24.0-1.el7.ngx.x86_64.rpm
5.设置开放的端口号
firewall-cmd --add-service=http –permanent
firewall-cmd --add-port=80/tcp --permanent
6.设置之后需要重启防火墙
firewall-cmd --reload
7.访问 http://127.0.0.1/80
8.默认值
/var/log/nginx/ #默认的日志文件目录
/etc/nginx #默认配置文件存放的根目录
/etc/nginx/nginx.conf 默认的主配置文件
/usr/share/nginx/html 默认主静态页
二.常用命令
1.查看版本
./nginx -v
2.启动命
./nginx -s start
start nginx
3.关闭
./nginx -s stop
nginx -s stop/nginx -s quit
4.重新加载
./nginx -s reload
nginx -s reload
4.查看版本
nginx -v
6.默认配置
server {
listen 80;
server_name 192.168.3.11;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
三.反向代理
1.反向代理实例1
1) 实现效果
打开浏览器,在浏览器地址栏输入地址 192.168.3.11,跳转到 www.baidu.com
2) 配置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
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;
server {
listen 80;
server_name 192.168.3.11;
location / {
root /usr/share/nginx/html;
proxy_pass http://www.baidu.com;
index index.html index.htm;
}
}
include /etc/nginx/conf.d/*.conf;
}
2.反向代理实例12
1) 效果
访问 http://192.168.17.129:9001/edu/ 直接跳转到 127.0.0.1:8080
访问 http:// 192.168.17.129:9001/vod/ 直接跳转到 127.0.0.1:8081
2) 配置
http { server { listen 80; server_name localhost; location ~ /edu/ { proxy_pass 127.0.0.1:8080 } location ~ /vod/ { proxy_pass 127.0.0.1:8081 } } }
四.负载均衡
1.实现效果
浏览器地址栏输入http://192.168.3.11/test,负载均衡效果平均5001和5002端口中
2.配置
upstream testserver{
server 192.168.2.4:5001;
server 192.168.2.4:5002;
}
server {
listen 80;
server_name 192.168.3.11;
location / {
root /usr/share/nginx/html;
proxy_pass http://testserver;
index index.html index.htm;
}
}
3.开启HTTP 访问
setsebool -P httpd_can_network_connect 1
4.或者永久关闭SELinux,好像没成功过
修改/etc/sysconfig/selinux文件
SELINUX=disabled 后重启系统
5.nginx 分配服务器策略
1) 轮询(默认)
2) weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
upstream testserver{
server 192.168.2.4:5001 weight = 10;
server 192.168.2.4:5002 weight = 10;
}
3) ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
upstream testserver{
ip_hash;
server 192.168.2.4:5001;
server 192.168.2.4:5002;
}
4) fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream testserver{
server 192.168.2.4:5001;
server 192.168.2.4:5002;fair;
}
五.问题
5.1 闪退怎么解决
1) 检查配置文件
确保您的 Nginx 配置文件(通常是 nginx.conf)没有错误。在终端中运行 nginx.exe -t 来检查配置文件的语法是否正确
2) 查看错误日志
打开 Nginx 的错误日志文件(通常是 error.log),查看是否有任何错误或异常记录
3) 查看端口冲突:
确保 Nginx 使用的端口没有被其他程序占用。您可以使用命令 netstat -ano 查看端口占用情况。
4) 使用命令行启动:
在命令行中直接启动 nginx.exe,观察是否有错误信息输出。如果有错误,可以根据错误信息尝试解决问题。
5) 更新 Nginx 版本
如果您的 Nginx 版本较旧,尝试升级到最新版本,可能会解决一些已知的问题。
6) 检查依赖库
确保 Nginx 所需的依赖库已正确安装,并且版本兼容。
7) 杀死进程
如果之前有一个 Nginx 进程没有正常关闭,可能会导致启动失败。您可以尝试杀死所有的 Nginx 进程,然后再重新启动。
8) 安全软件和防火墙
某些安全软件或防火墙可能会干扰 Nginx 的正常运行。您可以尝试临时禁用这些软件,然后再启动 Nginx。
9) 重装 Nginx
如果问题无法解决,您可以尝试删除并重新下载、安装 Nginx