Nginx、Jdk 运维安装以及推荐配置

261 阅读1分钟

高性能网关 Nginx

Nginx 安装包下载地址
推荐使用最新版本 Stable version nginx-1.18.0

Centos Nginx 安装手册

cd /usr/local

下载wget工具
yum -y install wget

下载Nginx安装包
wget http://nginx.org/download/nginx-1.18.0.tar.gz

解压
tar -zxvf nginx-1.18.0.tar.gz

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

配置安装
./configure & make & make install

配置环境变量
echo 'export PATH=/usr/local/nginx/sbin:$PATH'>> /etc/profile

使环境变量生效
source /etc/profile

设置开机启动
echo '/usr/local/nginx/sbin/nginx'>>/etc/rc.local
chmod 755 /etc/rc.local

Nginx 常用使用命令

帮助命令:nginx -h
启动Nginx服务器 :sudo nginx
查看进程: ps aux | grep nginx
配置文件路径:/usr/local/nginx/conf/nginx.conf
检查配置文件:sudo nginx -t
指定启动配置文件:sudo nginx -c /usr/local/nginx/conf/nginx.conf
暴力停止服务:sudo nginx -s stop
优雅停止服务:sudo nginx -s quit
重新加载配置文件:sudo nginx -s reload

Nginx 推荐配置

推荐一个比较好用的Nginx自动配置地址

主配置文件

/usr/local/nginx/conf/nginx.conf

user                 root;
#进程文件
pid                  /run/nginx.pid;
# nginx进程数,建议设置为等于CPU总核心数
worker_processes     8;
# 一个nginx进程打开的最多文件描述符数目
worker_rlimit_nofile 65535;

# Load modules
include              /usr/local/nginx/conf/modules-enabled/*.conf;

events {
    #  epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型
    use epoll;
    multi_accept       on;
    worker_connections 65535;
}


http {
    charset                utf-8;
	#开启高效文件传输模式
    sendfile               on;
	#防止网络阻塞
    tcp_nopush             on;
	 #防止网络阻塞
    tcp_nodelay            on;
    server_tokens          off;
    types_hash_max_size    2048;
    types_hash_bucket_size 64;
    client_max_body_size   16M;

    # MIME
    include                mime.types;
    default_type           application/octet-stream;

    # 日志格式
    log_format             cloudflare '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $http_cf_ray $http_cf_connecting_ip $http_x_forwarded_for $http_x_forwarded_proto $http_true_client_ip $http_cf_ipcountry $http_cf_visitor $http_cdn_loop';

    # 日志模块
    access_log             /var/log/nginx/access.log cloudflare;
    error_log              /var/log/nginx/error.log warn;

    # 限流模块
    limit_req_log_level    warn;
    limit_req_zone         $binary_remote_addr zone=login:10m rate=10r/m;

    # 外部配置
    include                /usr/local/nginx/conf/conf.d/*.conf;
    include                /usr/local/nginx/conf/sites-enabled/*;
}

反向代理配置文件地址

/usr/local/nginx/conf/sites-enabled/demo.com.conf

    listen      80;
    listen      [::]:80;
    root        /opt/static/public;

    # 安全配置
    include     nginxconfig.io/security.conf;

    # 日志配置 自定义项目名称 project
    access_log  /var/log/nginx/project.access.log cloudflare;
    error_log   /var/log/nginx/project.error.log warn;

    # 反向代理配置
    location /api {
        proxy_pass http://127.0.0.1:3000;
        include    nginxconfig.io/proxy.conf;
    }

    # 前端路由 index.html fallback
    location / {
        try_files $uri $uri/ /index.html;
    }
    
    # 其他配置
    include nginxconfig.io/general.conf;
}

配置文件地址

/usr/local/nginx/conf/nginxconfig.io/general.conf

# gzip
gzip            on;
gzip_vary       on;
gzip_proxied    any;
gzip_comp_level 6;
gzip_types      text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

反向代理相关配置

/usr/local/nginx/conf/nginxconfig.io/proxy.conf

proxy_http_version                 1.1;
proxy_cache_bypass                 $http_upgrade;

# Proxy headers
proxy_set_header Upgrade           $http_upgrade;
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_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host  $host;
proxy_set_header X-Forwarded-Port  $server_port;

# Proxy timeouts
proxy_connect_timeout              60s;
proxy_send_timeout                 60s;
proxy_read_timeout                 60s;

安全相关配置

/usr/local/nginx/conf/nginxconfig.io/security.conf

# security headers
add_header X-Frame-Options         "SAMEORIGIN" always;
add_header X-XSS-Protection        "1; mode=block" always;
add_header X-Content-Type-Options  "nosniff" always;
add_header Referrer-Policy         "no-referrer" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;

# . files
location ~ /\.(?!well-known) {
    deny all;
}

OpenJDK 1.8 安装手册

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
cat > /etc/profile.d/java8.sh <<EOF
export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export PATH=\$PATH:\$JAVA_HOME/bin
export CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar
EOF

source /etc/profile.d/java8.sh

java -version
javac -version

Redis 最新稳定版 6.0.6 安装手册

yum -y install centos-release-scl  # 升级到GCC 9.1版本
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
获取最新稳定版本安装包 
cd /usr/local
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
tar xzf redis-6.0.6.tar.gz
cd redis-6.0.6
make