为什么需要nginx
nginx启动一个web服务器,用来jenkins构建完成之后自动部署,为自动化部署提供基础服务。jenkins本身作为容器不具备环境功能,只做任务分配。
tomcat是应用进程服务器,tomcat 实际上运行JSP 页面和Servlet,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
nginx本身是一个http server
反向代理
负载均衡
动静分离
正向代理: 依赖代理服务器进行网络访问,浏览器配置代理服务器
正向代理,代理的对象是客户端,反向代理代理的对象是服务端
正向代理可以隐藏真实的客户端,反向代理可以隐藏真实服务端
vpn是正向代理,nginx是反向代理
阿里云服务器安装
pcre
openssl
zlib
nginx
pcre-config —version
tar -xvf nginx.tar 解压
mv nginx.1.xxx nginx 重命名
cd nginx
如果需要SSL模块 ,执行命令不一样
./config 或 执行 ./configure —prefix=/usr/local/nginx
make && make install 编译并安装
/usr/local/nginx/sbin
./nginx 启动
ps -ef | grep nginx 查看nginx进程
/usr/local/nginx/conf
防火墙配置
firewall-cmd位于firewalld包中,systemctl位于systemd包中
yum install firewalld systemd -y
systemctl status firewalld 查看firewalld状态
systemctl start firewalld 开启防火墙
firewall-cmd —list-all 查看防火墙开放端口号
firewall-cmd —add-port=8001/tcp —permanent
firewall-cmd —reload
防火墙端口开放之后,同时也要在云服务实例上配置安全组的规则
查看nginx版本号
/usr/local/nginx/sbin
./nginx -v
启动nginx
./nginx
关闭nginx
./nginx -s stop
问题处理
服务器重启后,重启nginx时报错nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory),进入到logs目录发现确实没有nginx.pid文件
使用指定nginx.conf文件的方式重启nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
此时去logs目录下查看发现nginx.pid文件已经生成了
报错:
nginx: [alert] could not open error log file: open() “/usr/local/nginx/logs/error.log” failed (2: No such file or directory)
2021/08/27 17:52:43 [emerg] 31468#0: open() “/usr/local/nginx/logs/access.log” failed (2: No such file or directory)
mkdir logs
/usr/local/nginx/sbin/nginx -t
查看进程
netstat -ltunp
kill PID
nginx.conf配置
进入目录 /usr/local/nginx/conf
worker_processes 1; 并发数
events {
worker_connections 1024; // 连接数
}
root、alias用法
location /i/ {
alias /spool/w3/images/;
}
"/i/top.gif" -> "/spool/w3/images/top.gif"
location /i/ {
root /spool/w3;
}
"/i/top.gif" -> "/spool/w3/i/top.gif"
配置环境变量
查看环境变量
echo $PATH
whereis nginx
查看nginx安装位置
vim ~/.bash_profile
export PATH=$PATH:/usr/local/nginx/sbin
引用.bash_profile文件 - 生效
source ~/.bash_profile
nginx -v
nginx conf支持配置多个http服务,复制server块,配置不同的端口号,指定不同的location.root路径,以访问不同的服务
Tengine, 淘宝基于nginx开发的稳定的
OpenResty
mac本地安装nginx 方向代理
brew install nginx
nginx version: nginx/1.19.5
启动nginx服务
brew services start nginx
8080端口
nginx #启动nginx
nginx -s quit #快速停止nginx
nginx -V #查看版本,以及配置文件地址
nginx -v #查看版本
nginx -s reload|reopen|stop|quit #重新加载配置|重启|快速停止|安全关闭nginx
nginx -h #帮助
5.1 nginx安装文件目录
/usr/local/Cellar/nginx
5.2 nginx配置文件目录
/usr/local/etc/nginx
5.3 config文件目录
/usr/local/etc/nginx/nginx.conf
卸载
brew uninstall nginx
localhost:8000/bing/ -> https://cn.bing.com/
win nginx
https://www.cnblogs.com/maoyi/p/13605151.html
开启nginx:start nginx
重启nginx: nginx -s reload
停止:nginx -s stop
ctrl+shift+esc
查看进程是否被杀掉,或影响配置生效
server {
listen 端口号;
location ^~/项目名 {
root “盘:\项目名所在位置”;
index index.html;
}
}
可以配置多个server,不同端口
错误处理
The request was rejected because the URL was not normalized.
路径配置错误问题
server {
listen 8091;
server_name 0.0.0.0;
location / {
root D:\workspace\pgk-client\dist;
index index.html;
try_files $uri $uri/ /index.heml;
}
location /api/pgk-abc/ {
proxy_pass http://10.102.201.171:8899/;
}
}
Tengine
Tengine