Nginx笔记
安装nginx
wget -c https://nginx.org/download/nginx-1.20.1.tar.gz
1、创建软链路
ls /usr/local/nginx/sbin/nginx /usr/bin/
2、前端部署配置 Conf
在这里插入图片描述
3、启动服务
由于软链路 可以直接
nginx 启动(任意目录)
停止
nginx -s quit
4、用nginx实现tcp代理,并实现负载均衡
upstream mysqld {
hash $remote_addr consistent;
server 192.168.1.42:3306 weight=5 max_fails=1 fail_timeout=10s;
server 192.168.1.43:3306 weight=5 max_fails=1 fail_timeout=10s;
}
server {
listen 3306;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass mysqld;
}
5、安装nginx
(1)wget -c https://nginx.org/download/nginx-1.20.1.tar.gz
第二步:配置nginx安装所需的环境
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下:
yum install gcc-c++
1
2. 安装PCRE pcre-devel
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下:
yum install -y pcre pcre-devel
1
3.安装zlib
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
1
4.安装Open SSL
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
1
第三步:解压nginx压缩包并安装
将压缩包进行解压,解压指令还是写一下吧:
tar -zxvf nginx-1.20.1.tar.gz
安装到指定路径
./configure \
--prefix=/usr/local/web-nginx \
--sbin-path=/自定义位置/nginx \
--conf-path=/自定义位置/nginx.conf \
--pid-path=/自定义位置/nginx.pid \
开启ssl模块
./configure --with-http_ssl_module
安装到指定路径
./configure --prefix=/usr/local/web-nginx
指定路径配置ssl
./configure --with-http_ssl_module \
--prefix=/usr/local/yun-nginx
第四步:编译安装nginx
这里和redis的编译安装比较类似,首先在当前目录(/usr/local/nginx-1.10.1)进行编译。输入make即可
make
1
然后回车,如果编译出错,请检查是否前面的4个安装都没有问题。
编译成功之后,就可以安装了,输入以下指令:
make install
————————————————
若需要配置指定的端口 则只需在指定的端口配置ssl
listen 9967;
listen 9966 ssl;
server_name localhost;
2 实现tcp代理,要装stream模块
./configure --with-stream \
--prefix=/usr/local/configure-nginx
```bash
make & make install
stream {
server {
listen 8848;
proxy_pass 10.201.25.1:8848;
}
server {
listen 8000;
proxy_pass 10.201.25.1:5236;
}
server {
listen 6379;
proxy_pass 10.201.25.1:6379;
}
server {
listen 9000;
proxy_pass 10.201.25.1:9000;
}
server {
listen 9099;
proxy_pass 10.201.25.2:9909;
}
server {
listen 10000;
proxy_pass 19.15.18.83:8080;
}
}
设置开机自动启动
vim /etc/rc.local
把nginx路径复制进去
/usr/local/configure-nginx/sbin/nginx
3、nginx记录真实得电脑ip
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.10.160:8081/;
}
4、自定义https非443端口 以下是nginx.conf的配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
proxy_headers_hash_bucket_size 1024;
types_hash_bucket_size 1024;
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
client_max_body_size 2000m;
server {
listen 8082 ssl;
server_name localhost;
ssl_certificate /opt/data/nginx/conf.d/ssl/server.crt;
ssl_certificate_key /opt/data/nginx/conf.d/ssl/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if ($request_uri ~ "/actuator") {
return 403;
}
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root dist;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
index index.html index.htm;
}
location /api/ {
proxy_pass http://192.168.1.185:8081/;
# 这步骤是定义https非443端口的关键
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 非默认端口需要添加$server_port
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
# 这步骤是定义https非443端口的关键
}
location /sapi/ {
proxy_pass http://192.168.1.185:8081/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 非默认端口需要添加$server_port
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
码云地址:https://gitee.com/yuisuiWork/spring_project_demo/
欢迎交流,一起进步!