java nginx使用记录

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: nginx使用

反向代理:

反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。这里你能够发现,正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。
当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。

nginx 的master-worker模式:

启动nginx后,其实就是在80端口启动了socket服务进行监听。
master进程的作用是:读取并验证配置文件nginx.conf;管理worker进程。
worker进程的作用是:每一个子进程都维护一个线程(避免线程切换),处理连接和请求,注意worker进程的个数由配置文件决定,一般和cpu个数有关(有利于进程切换)。

安装流程
下载地址:https://nginx.org/en/download.html
安装编译工具及其库文件

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装pcre

cd /usr/local/src/
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure
make && make install
pcre-config --version
算了,跟着这个教程来,绝对保把
https://www.runoob.com/linux/nginx-install-setup.html

查看是否启动成功
netstat –ntpl
nginx配置文件详解

启动子进程程序默认用户

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服务器设置

http {

#设定mime类型,类型由mime.type文件定义
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"';
#$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
#$remote_user:用来记录客户端用户名称;
#$time_local: 用来记录访问时间与时区;
#$request: 用来记录请求的url与http协议;
#$status: 用来记录请求状态;成功是200,
#$body_bytes_sent :记录发送给客户端文件主体内容大小;
#$http_referer:用来记录从那个页面链接访问过来的;
#$http_user_agent:记录客户浏览器的相关信息;


#全局访问日志路径
#access_log  logs/access.log  main;
#sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
sendfile        on;


#此选项可以减少网络报文段的数量
#tcp_nopush     on;


#长连接超时时间
#keepalive_timeout  0;
keepalive_timeout  65;


#开启压缩
#gzip  on;


#配置虚拟主机
server {
    #虚拟主机使用的端口
    listen       80;
    #虚拟主机域名
    server_name  localhost;


    #虚拟主机支持的字符集
    #charset koi8-r;


    #虚拟主机的访问日志路径
    #access_log  logs/host.access.log  main;


    #定义web根路径
    location / {
        #根目录路径
        root   html;
        #索引页
        index  index.html index.htm;
    }


    #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;
    }


    #定义反向代理服务器 数据服务器是lamp模型
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}




    #定义PHP为本机服务的模型  
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}


    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #拒绝nginx DR目录及子目录下的.htaccess文件访问
    #location ~ /\.ht {
    #    deny  all;
    #}
}




# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;


#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}




#https的配置方案
# HTTPS server
#
#server {
#    listen       443 ssl;
#    server_name  localhost;


#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;


#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout  5m;


#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers  on;


#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

}

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
供应链 Java
云HIS技术架构:Angular+Nginx+Java+Spring,SpringBoot
标准数据维护 用户信息:维护用户的基本信息,所在科室以及各个系统所具体的权限。 科室信息:维护医院的科室信息。 数据字典:标准字典信息的维护。 药品/诊疗目录维护:维护药品和诊疗目录的基本信息。
64 2
|
1月前
|
负载均衡 算法 Java
java中nginx负载均衡配置
java中nginx负载均衡配置
38 0
|
4月前
|
Kubernetes Java 应用服务中间件
Kubernetes 上搭建一个 Nginx 的 Pod,并确保传入的 API 请求被均匀地分发到两个 Java 业务 Pod 上
Kubernetes 上搭建一个 Nginx 的 Pod,并确保传入的 API 请求被均匀地分发到两个 Java 业务 Pod 上
78 0
|
6月前
|
消息中间件 Java 关系型数据库
JAVA云HIS医院管理系统源码、基于Angular+Nginx+ Java+Spring,SpringBoot+ MySQL + MyCat
JAVA云HIS医院管理系统 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等,为医院管理提供更有力的保障。 HIS系统以财务信息、病人信息和物资信息为主线,通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为医院领导及各部门管理人员提供全面、准确的各种数据。
130 1
|
运维 Java 应用服务中间件
【Nginx异常】无法加载响应数据:No data found for resource with given identifier,后端服务报Caused by: java.io.IOExcepti
【Nginx异常】无法加载响应数据:No data found for resource with given identifier,后端服务报Caused by: java.io.IOExcepti
1357 0
|
6月前
|
负载均衡 Java 应用服务中间件
|
前端开发 应用服务中间件 nginx
用docker和nginx部署前端项目访问本地java网关gateway服务
本地开发 java 微服务项目,但是拿到的对应的web前端项目只有打包编译过后的 dist 目录里的静态资源(里面只有一个index.html和一些编译过后的 js、css文件),前端接口需要先访问到 java 的网关服务,然后网关里再做转发
454 1
|
6月前
|
运维 供应链 安全
springboot医院HIS信息管理系统源码:技术架构:Angular+Nginx+Java+Spring,SpringBoot
springboot医院HIS信息管理系统源码:技术架构:Angular+Nginx+Java+Spring,SpringBoot
62 0
|
前端开发 Java jenkins
Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自动发布与基于tag版本回退
Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自动发布与基于tag版本回退
324 0
|
Java jenkins 应用服务中间件
Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
114 0