学习nginx

Nginx笔记
安装nginx
wget -c https://nginx.org/download/nginx-1.20.1.tar.gz
1、创建软链路

学习nginx_第1张图片
ls /usr/local/nginx/sbin/nginx /usr/bin/
2、前端部署配置 Conf
在这里插入图片描述
学习nginx_第2张图片
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安装所需的环境

  1. 安装gcc

安装 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

学习nginx_第3张图片

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/
欢迎交流,一起进步!

你可能感兴趣的:(nginx,运维,linux)