1、Nginx的安装
Nginx的安装有两种
- 下载编译好的压缩包,直接解压就可以使用
- 下载未编译的源码,需要编译之后再安装才能使用
下载地址:http://nginx.org/en/download.html
1、Linux下源码编译安装
1、压缩包上传解压
tar -zxvf nginx-1.11.1.tar.gz
2、编译安装
指定位置安装
## 配置Nginx用户
./configure --prefix=/usr/nginx
## 配置Nginx的安装路径
--prefix=/usr/nginx
增加gzip_static
--with-http_gzip_static_module
--prefix=/usr/nginx:安装路径
./configure --prefix=/usr/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-http_gzip_static_module
编译安装
make && make install
遇到问题
1、安装缺少依赖
yum install -y gcc pcre-devel zlib-devel
运行Nginx
进入安装路径
生成了sbin目录,运行里面的nginx文件启动
1、不指定配置文件启动,使用默认配置文件
./nginx
2、指定配置文件启动
./nginx -c /home/nginx/nginx-1.18.0/conf/nginx.conf
查看是否启动成功
ps -ef | grep nginx
Nginx常见命令
1、启动命令
1、不指定配置文件启动,使用默认配置文件
./nginx
2、指定配置文件启动
./nginx -c /home/nginx/nginx-1.18.0/conf/nginx.conf
2、重启命令
这个程序并没有关闭,而是重新加载配置文件
./nginx -s reload
3、关闭命令
./nginx -s stop
或者kill -9 PID
3、Nginx配置文件
1、基本结构
# 全局配置:工作核心数量
worker_processes 2;
# 全局配置:工作线程数
events {
worker_connections 8192;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile off;
server_names_hash_bucket_size 128;
map_hash_bucket_size 64;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 30;
send_timeout 10;
keepalive_requests 10;
client_header_buffer_size 1m;
large_client_header_buffers 4 2m;
# gzip模块,需要编译nginx的时候增加gzip模块
#gzip on;
# 负载均衡:监听后端接口服务 -可用于分布式部署
upstream api_server{
# 权重、weight值一样的时候,是轮询,还有一种是:ip_hash
server 127.0.0.1:9001 weight=10;
server 127.0.0.1:9002 weight=10;
}
# upstream api_server{
# 权重、weight值一样的时候,是轮询,还有一种是:ip_hash
# ip_hash
# server 127.0.0.1:9001;
# server 127.0.0.1:9002;
# }
#端口8849 代理后端服务
server {
listen 90;
server_name localhost; #需要将yourdomain.com替换成证书绑定的域名。
#proxy_http_version 1.1;
client_max_body_size 10m;
location / {
proxy_pass http://api_server;
proxy_set_header Host $host;
index index.html index.htm;
}
}
#443 代理网站https服务
server {
listen 443 ssl;
#listen debug.wushusong.com:8051;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name debug.wushusong.com; #需要将yourdomain.com替换成证书绑定的域名。
proxy_http_version 1.1;
client_max_body_size 10m;
root html;
index index.html index.htm;
ssl_certificate cert/debug.wushusong.com.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/debug.wushusong.com.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
ssl_session_timeout 5m;
# intermediate configuration
#ssl_protocols TLSv1.3;
#ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
#表示使用的加密套件的类型。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
location / {
root E:\wss_waybill_check\website\WaybillPortal;
## root D:\zx\project\idea\v2\SHDYZX_DZLD\WaybillPortal;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /wss-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:90/;
}
}
}
4、基本功能
1、反向代理
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:90/;
}
2、负载均衡
# 监听后端接口服务 -可用于分布式部署
#策略:权重、轮询
# weight不相等,就是权重
# weight相等,就是轮询
upstream api_server{
server 127.0.0.1:9001 weight=10;
server 127.0.0.1:9002 weight=10;
}
# 监听后端接口服务 -可用于分布式部署
#策略:IPhash
upstream api_server_v2{
ip_hash
server 127.0.0.1:9001;
server 127.0.0.1:9002;
}
3、代理静态页面
server {
listen 80;
server_name static.wss.com;
location /localfile {
# root /root/local/aaaa;
alias /root/local/aaaa;
}
}
两种配置:root、alias
1、root:root目录+匹配的url+后面的url
客户端请求 /localfile/20230618132700.png 的时候,Nginx把请求映射为 /root/local/aaaa/localfile
如:
http://static.wss.com/localfile/20230618132700.png
–》/root/local/aaaa/localfile/20230618132700.png
2、alias:alias目录+后面的url
客户端请求 /localfile/20230618132700.png 的时候,Nginx把请求映射为 /root/local/aaaa
如:
http://static.wss.com/localfile/20230618132700.png
–》/root/local/aaaa/20230618132700.png
总结:最大的区别就是,root会把匹配的url添加到root的后面,而alias则不会把匹配的url添加到后面