首页
关于
友链
统计
更多
留言
Search
1
centos7下源码编译安装Lnmp环境
478 阅读
2
Centos 8 安装samba服务
401 阅读
3
golang库-GoCV
291 阅读
4
Golang 通用后台权限管理系统 (Go-Funny-CMS)
226 阅读
5
nginx、apache启用HSTS
196 阅读
其他
前端
JavaScript
后端
Linux
PHP
golang
登录
Search
标签搜索
linux
php
golang
golang库
github
加速器
mysql
nginx
apache
lnmp
虚拟内存
JavaScript
nodejs
redis
流星Aday
累计撰写
14
篇文章
累计收到
0
条评论
首页
栏目
其他
前端
JavaScript
后端
Linux
PHP
golang
页面
关于
友链
统计
留言
搜索到
1
篇与
lnmp
的结果
2021-05-16
centos7下源码编译安装Lnmp环境
MySql安装建议安装内存大于或等于2G,不够2G的请配置虚拟内存,否则安装MySQL可能会出错==推荐先更新一下yum源yum -y update==1、底层软件库运行以下命令确保底层软件库都已安装yum -y install gcc gcc-c++ autoconf automake zlib libxml2 libxml2-devel ncurses-devel libmcrypt libtool cmake bison make pcre pcre-devel libevent openssl openssl-devel gd-devel bzip2 bzip2-devel libcurl curl-devel python python-devel mysql-devel expat-devel2、源码编译安装MySQLMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。需要下载cmake编译器、Boost库、ncurses库和GNU分析器生成器bison这4种工具,可以用yum install的方式安装 cmake、bison、boost、ncurses以下 安 装中 涉 及的 几点 需 要提 前 说明 的问 题 :所有 下 载的 文件 将 保存 在 /root 目 录下mysql 将以 mysql 用户 运 行, 而 且将 加入 service 开 机 自动 运 行mysql 将被 安 装在 /usr/local/mysql/ 目录 下mysql 默认 安 装使 用 utf8 字符集mysql 的数 据 和日 志文 件 保存 在 /usr/local/mysql/data/ 目录 下mysql 的配 置 文件 保存 于 /usr/local/mysql/etc/my.cnftmp==注意 从 MySQL 5.7.5 开 始Boost库是 必需 的==2.1、安装依赖库安装 cmake 和 bison 与 ncursesyum -y install -y cmake bison ncurses2.2、建立mysql安装目录和用户在/usr/local/mysql建立【data】、【tmp】、【log】、【etc】4个目录mkdir -pv /usr/local/mysql cd /usr/local/mysql mkdir data tmp log etc groupadd mysql useradd -g mysql -s /usr/sbin/nologin mysql2.2、下载mysqlcd ~ wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz==下载的安装包中已经携带Boost库,不需要额外下载==2.3、解压并进入目录tar -zxvf mysql-boost-5.7.26.tar.gz cd mysql-5.7.262.4、进行软件配置和环境检测cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/usr/local/mysql/etc \ -DMYSQL_USER=mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ -DWITH_DEBUG=0 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DMYSQL_USER=mysql \ -DWITH_BOOST=boost/boost_1_59_0 \ -DDOWNLOAD_BOOST=1以上内容的解释: cmake #设置安装目录 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #设置sock目录 -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock #设置数据库存放目录 -DMYSQL_DATADIR=/usr/local/mysql/data #设置配置文件my.cnf存放目录 -DSYSCONFDIR=/usr/local/mysql/etc #设置mysql的默认使用用户 -DMYSQL_USER=mysql #设置默认字符集 -DDEFAULT_CHARSET=utf8 #默认校对规则 -DDEFAULT_COLLATION=utf8_general_ci #指明安装额外字符集的支持 -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk #去除debug模式 -DWITH_DEBUG=0 #以下几条开启常用的引擎 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 #Enable LOAD DATA LOCAL INFILE(default:disabled) -DENABLED_LOCAL_INFILE=1 #使用一些字符函数的汇编版本 -DWITH_EMBEDDED_SERVER=1 -DMYSQL_USER=mysql #5.7编译需要boost类库,指明boost的路径 -DWITH_BOOST=/usr/local/boost #在以上路径如果没查找到boost会自动下载并解压(如事先已下载好,此句可略) -DDOWNLOAD_BOOST=12.5、编译软件并且进行安装make && make install==注意:== 接下来可能需要耗较长时间,请耐心等待。另外如果过程中出现报错而中断,需要删除CMakeCache.txt文件后再执行 2.2.4步骤内容(没出错请不要执行以下两行指令):make cleanrm -rf CMakeCache.txt 或者 unlink CMakeCache.txt3、配置3.1、使用递归,把mysql目录所有者设置为mysql这个用户chown -R mysql:mysql /usr/local/mysql3.2、如果 /etc/my.cnf 存在的话,请删除unlink /etc/my.cnf3.3、进入MySQL安装目录下cd /usr/local/mysql重建 my.cnf文件3.4、根据实际情况优化mysql配置vim etc/my.cnf大概内容如下:# my.cnf 的示例配置 [client] default-character-set = utf8 port = 3306 socket = /usr/local/mysql/tmp/mysql.sock [mysqld] datadir =/usr/local/mysql/data port = 3306 socket = /usr/local/mysql/tmp/mysql.sock user = mysql symbolic-links = 0 pid-file = /usr/local/mysql/tmp/mysql.pid explicit_defaults_for_timestamp = true sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER slow_query_log = on slow_query_log_file = /usr/local/mysql/log/slow.log long_query_time = 2 log_error = /usr/local/mysql/log/mysql.err3.5、初始化和启动3.5.1、初始化mysql的基本表MySQL5.7及以上的做法:--initialize会生成一个随机密码(~/.mysql_secret),而--initialize-insecure不会生成密码/usr/local/mysql/bin/mysqld \ --initialize-insecure \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data \ --user=mysql==注意:==如果初始化出错,则需要用rm -rf /usr/local/mysql/data/* 将 mysql 的 data 目录下的文件和目录都删除,然后再重新运行以上语句3.5.2、启动mysql/usr/local/mysql/bin/mysqld_safe > /dev/null 2>&1 &3.5.3、修改mysql的root密码/usr/local/mysql/bin/mysqladmin -u root password 123456(其中 123456为您希望使用的密码)3.5.4、增加到开机启动先将mysqld设置为服务cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld然后将mysqld服务加入启动项:chkconfig --add mysqld设置为自启动:chkconfig --level 345 mysqld on--level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。等级0表示:表示关机等级1表示:单用户模式等级2表示:无网络连接的多用户命令行模式等级3表示:有网络连接的多用户命令行模式等级4表示:不可用等级5表示:带图形界面的多用户模式等级6表示:重新启动3.5.5、将mysql命令加入到环境变量里PATH=$PATH:/usr/local/mysql/bin为了重启后仍能有效:echo 'PATH=$PATH:/usr/local/mysql/bin' >> /root/.bashrc3.5.6、如果需要对外开放 3306 端口iptables -I INPUT -p tcp --dport 3306 -j ACCEPT如果 mysqld 服务正常运行中,但是执行 mysql 指令时报出以下错误:`mysql -uroot -p123456` "ERROR 2002 (HY000): Can't connect to local MySql server through socket '/var/lib/mysql/mysql.sock' (2)"解决方案就是创建一个软链接mkdir -pv /var/lib/mysql ln -s /usr/local/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock到此MySQL安装完毕!PHP安装安装PHP之前,首先要检查安装libxml2、libxml2-devvel、gd-develrpm -qa | grep libxml2* rpm -qa | grep gd-devel*如果没有安装,可以使用yum -y install命令进行安装。php可以到 http://php.net/downloads.php 或者 http://mirrors.sohu.com/php/ 去下 载,此处 以php-7.3.6.tar.gz为例 以下安装中涉及的几点需要提前说明的问题:所有下载的文件将保存在 /root 目录下php 将以 FastCGI模式运行,监听 9000 端口(默认端口)php 将被安装在 /usr/local/php 目录下php 的配置文件保存于 /usr/local/php/etc/php.iniphp 的扩展库文件,如果可以的话,尽量放在 /usr/local/php/lib/php/extensions/ 目录1、安装PHP1.1、下载cd ~ wget https://www.php.net/distributions/php-7.3.6.tar.gz1.2、解压并进入目录tar -zxvf php-7.3.6.tar.gz cd php-7.3.61.3、进行软件的配置和环境检测./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ --enable-opcache \ --with-zlib-dir \ --with-bz2 \ --with-libxml-dir=/usr \ --with-gd \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --enable-mbstring \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=/usr/local/mysql \ --with-iconv \ --disable-ipv6 \ --enable-static \ --enable-inline-optimization \ --enable-sockets \ --enable-soap \ --with-openssl \ --with-curl以上内容的解释如下:./configure # 检测环境,并生成makefile文件--prefix=/usr/local/php # 指定php安装目录--with-config-file-path=/usr/local/php/etc # 设置php.ini配置文件存放的路径--enable-fpm # 开启PHP-FPM,用于控制PHP-CGI的FastCGI进程--enable-opcache # PHP新增opcache功能--with-zlib-dir # 加载zlib库--with-bz2 # 加载bz2的压缩库--with-libxml-dir=/usr # 加载xml库--with-gd # 加载gd库--with-freetype-dir # 加载字体库--with-jpeg-dir # 加载jpeg库--with-png-dir # 加载png库--enable-mbstring # 开启mbstring加密库--with-mysql=/usr/local/mysql # 加载mysql,并指定mysql基本路径--with-mysqli=/usr/local/mysql/bin/mysql_config # 加载mysqli库,并指定mysql配置工具--with-pdo-mysql=/usr/local/mysql # 加载pdo对mysql的支持--with-iconv # 开启转换字符集--disable-ipv6 # 关闭ipv6支持--enable-static # 以静态方式编辑php库--enable-inline-optimization # 开启优化线程--enable-sockets # 开启sockets支持--enable-soap #开启soap对web service的支持--with-openssl # 开启ssl支持--with-curl # 模拟浏览器1.4、编译软件并且进行安装make && make install2.2、配置2.2.1、复制配置文件cp php.ini-production /usr/local/php/etc/php.ini cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm赋予其可执行权限chmod +x /etc/rc.d/init.d/php-fpm拷贝产生 php-fpm 的配置文件cd /usr/local/php/etc cp php-fpm.conf.default php-fpm.conf2.2.2、配置php.inivim php.ini时区:date.timezone = Asia/Shanghai根据自己的需求调整以下选项的值错误显示:display_errors = On显示错误类型:error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED脚本最大执行时长:max_execution_time = 60最大接收数据时长:max_input_time = 60PHP使用最大内存限制:memory_limit = 128Mpost上传文件大小最大限制:post_max_size = 128M单文件最大限制:upload_max_filesize = 50M2.2.3、配置 php-fpm.confcd /usr/local/php/etc/php-fpm.d cp www.conf.default www.conf vim www.conf找到 user = nobody 和 group = nobody,将 nobody 改成 www找到 listen.owner=nobody 和 listen.group= nobody,将 nobody 改成 www==注意:====必须得先新增www用户,否则无法启动php==groupadd www useradd -g www -s /usr/sbin/nologin www2.2.4、将 php-fpm 加入服务并自动启动service php-fpm start chkconfig --add php-fpm chkconfig --level 345 php-fpm on到此PHP安装完毕!Tengine安装我这里使用的是Tengine1、安装环境1.1、安装必要的编译环境yum -y install gcc gcc-c++ bzip2 perl curl curl-devel expat-devel gettext-devel openssl-devel libxml2 libxml2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel autoconf yum -y install epel-release //扩展包更新包 yum -y install libmcrypt libmcrypt-devel mcrypt mhash1.2、安装需要的组件PCREPCRE是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCREcd ~ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz tar zxvf pcre-8.42.tar.gz cd pcre-8.42 ./configure --prefix=/usr/local/pcre make && make installZlibZlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlibcd ~ wget http://zlib.net/zlib-1.2.11.tar.gz tar zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make && make installjemallocjemalloc是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。cd ~ wget https://github.com/jemalloc/jemalloc/releases/download/5.2.0/jemalloc-5.2.0.tar.bz2 tar -jxvf jemalloc-5.2.0.tar.bz2 cd jemalloc-5.2.0 ./configure --prefix=/usr/local/jemalloc make && make installOpenSSLOpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用,安装OpenSSL主要是为了让tengine支持Https的访问请求。cd ~ wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz tar zxvf openssl-1.1.1c.tar.gz cd openssl-1.1.1c ./config --prefix=/usr/local/openssl make && make install2、安装2.1、创建用户和组# 如果已经添加了 www 用户组与用户名的时候,就不需要操作以下指令 groupadd www useradd -g www -s /usr/sbin/nologin www2.2、创建目录mkdir -pv /usr/local/tengine/tmp3、下载Tenginecd ~ wget https://tengine.taobao.org/download/tengine-2.3.1.tar.gz3.1、解压并进入目录tar -zxvf tengine-2.3.1.tar.gz cd tengine-2.3.13.2、进行软件配置和环境检测./configure \ --prefix=/usr/local/tengine \ --user=www \ --group=www \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_flv_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_realip_module \ --with-http_image_filter_module \ --http-client-body-temp-path=/usr/local/tengine/tmp/client_body_temp \ --http-fastcgi-temp-path=/usr/local/tengine/tmp/fastcgi_temp \ --http-proxy-temp-path=/usr/local/tengine/tmp/proxy_temp \ --http-uwsgi-temp-path=/usr/local/tengine/tmp/uwsgi_temp \ --http-scgi-temp-path=/usr/local/tengine/tmp/scgi_temp \ --with-pcre=/root/pcre-8.42 \ --with-openssl=/root/openssl-1.1.1c \ --with-jemalloc=/root/jemalloc-5.2.0 \ --with-zlib=/root/zlib-1.2.11参数说明:./configure \--prefix=/usr/local/tengine #指定安装目录--user=www #设置用户名--group=www #设置用户组--with-http_ssl_module \--with-http_v2_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--with-http_realip_module \--with-http_image_filter_module # 这个还需要安装gd库 yum -y install gd-devel--http-client-body-temp-path=/usr/local/tengine/tmp/client_body_temp \--http-fastcgi-temp-path=/usr/local/tengine/tmp/fastcgi_temp \--http-proxy-temp-path=/usr/local/tengine/tmp/proxy_temp \--http-uwsgi-temp-path=/usr/local/tengine/tmp/uwsgi_temp \--http-scgi-temp-path=/usr/local/tengine/tmp/scgi_temp \--with-pcre=/root/pcre-8.42 #指定PCRE的解压目录--with-openssl=/root/openssl-1.1.1c #指定openssl的解压目录--with-jemalloc=/root/jemalloc-5.2.0 #指定jemalloc的解压目录--with-zlib=/root/zlib-1.2.11 #指定zlib的解压目录3.3、编译安装make && make install3.4、创建nginx文件并加入到启动服务中4、配置4.1、简单配置4.1.1、创建网站根目录根目录为:/mydata/wwwroot/wwwmkdir -p /mydata/wwwroot chown -R www:www /mydata/wwwroot4.1.2、安装为服务vim /etc/rc.d/init.d/nginx内容如下(特别是 chkconfig 和 description那两行代码,一定要写,否则无法加入服务):#!/bin/sh # chkconfig: - 85 15 # description: nginx is a World Wide Web server. It is used to serve start() { echo 'Starting Nginx ...' /usr/local/tengine/sbin/nginx > /dev/null 2>&1 & } stop() { echo 'Stoping Nginx ...' /usr/local/tengine/sbin/nginx -s stop > /dev/null 2>&1 & } reload() { echo 'Reloading Nginx ...' /usr/local/tengine/sbin/nginx -s reload } if [ $# -ne 1 ] then echo 'please input one params like start|restart|stop|reload' exit 1 fi case "$1" in 'start') start ;; 'stop') stop ;; 'restart') stop sleep 2 start ;; 'reload') reload ;; '*') echo 'please input one params like start|restart|stop|reload' ;; esac4.1.3、配置权限并增加到开机启动chmod a+x /etc/rc.d/init.d/nginx chkconfig --add nginx chkconfig --level 345 nginx on以后就可以直接用以下指令来完成日常管理了:service nginx start #启动 service nginx reload #重载 service nginx stop # 停止4.1.4、开始配置vim /usr/local/tengine/conf/nginx.conf#示例配置,请根据需求更改 #设置执行用户 user www www; #自动设置Nginx启动的worker数量,默认是CPU的processor数(不是core数) worker_processes auto; #自动将Nginx的worker进程绑定到CPU的processor上,1.9.10以上版本才支持auto,Tegine默认支持 worker_cpu_affinity auto; #设置所有worker的open files数,如不设置默认为系统ulimit -n的大小 worker_rlimit_nofile 10000; #开启pcre jit功能,编译pcre的时候需要开启jit功能 #pcre_jit on; #开启错误日志 error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #error_log "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G"; pid logs/nginx.pid; events { #每个worker的最大连接数,这个数字不光光只Nginx与Client间的连接,还包括Nginx与后端Server的连接数,配置的时候须注意worker_rlimit_nofile>worker_connections*workers worker_connections 1024; #优化同一时刻只有一个请求而避免多个睡眠进程被唤醒的设置,on为防止被同时唤醒,默认为off,因此nginx刚安装完以后要进行适当的优化,在访问量较大的网站上建议关闭accept_mutex机制 accept_mutex off; } # load modules compiled as Dynamic Shared Object (DSO) # #dso { #load ngx_http_fastcgi_module.so; #load ngx_http_rewrite_module.so; #} http { #隐藏版本号 #syntax : server_tokens on | off;此行为参数语法,on为开启状态,off为关闭状态 #default : server_tokens on 此行不配置该参数,软件默认的结果 #context : http,server,location 此行为server_tokens参数可以放置的位置 server_tokens off; 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; #access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main; #开启高效文件传输模式 #yntax: sendfile on|off #参数语法 #default: sendfile off #参数默认大小 #context: http,server,location,if in location #可放置的标签段 #参数作用:激活或者禁用sendfile()功能。sendfile()是作用于两个文件描述符之间的数据拷贝函数,这个拷贝操作是在内核之中,被称为“零拷贝”,sendfile()和read和write函数要高效很多,因为read和wrtie函数要把数据拷贝到应用层再进行操作。相关控制参数还有sendfile_max_chunk。 sendfile on; #Syntax: tcp_nopush on | off; #参数语法 #Default: tcp_nopush off; #参数默认大小 #Context: http, server, location #可以放置标签段 #参数作用:激活或禁用Linux上的TCP_CORK socker选项,此选项仅仅开启sendfile时才生效,激活这个tcp_nopush参数可以运行把http response header和文件的开始放在一个文件里发布,减少网络报文段的数量。 tcp_nopush on; #用于激活tcp_nodelay功能,提高I/O性能 #Syntax: tcp_nodelay on | off; #Default: tcp_nodelay on; #Context: http, server, location #参数作用:默认情况下数据发送时,内核并不会马上发送,可能会等待更多的字节组成一个数据包,这样可以提高I/O性能,但是,在每次只发送很少字节的业务场景,使用tcp_nodelay功能,等待时间会比较长。 #参数生产条件:激活或禁用tcp_nodelay选项,当一个连接进入到keep-alive状态时生效 tcp_nodelay on; #一个请求完成之后还要保持连接多久 keepalive_timeout 65; #设置客户端请求头读取超时时间,如果超过这个时间(以秒为单位),客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误 client_header_timeout 15; #设置客户端请求主体读取超时时间,如果超过这个时间(以秒为单位),客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误 client_body_timeout 15; #设置上传文件大小 #Syntax: client_max_body_size size; #Default: client_max_body_size 1m; #默认值是1m #Context: http, server, location client_max_body_size 128m; #开启gzip压缩 gzip on; #压缩版本(默认1.1 前端为squid2.5时使用1.0)用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP压缩,使用默认即可。 gzip_http_version 1.1; #用来指定压缩的类型,需要压缩的常见静态资源 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png video/mp4 video/mp3; #由于nginx的压缩发生在浏览器端而微软的ie6很坑爹,会导致压缩后图片看不见所以该选项是禁止ie6发生压缩 gzip_disable "MSIE [1-6]\."; #如果文件大于1k就启动压缩 gzip_min_length 1k; #以16k为单位,按照原始数据的大小以4倍的方式申请内存空间,一般此项不要修改 gzip_buffers 4 16k; #压缩比率,用来指定GZIP压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,也消耗CPU资源 gzip_comp_level 5; #vary hear支持,该选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用缓存经过Nginx压缩的数据。 gzip_vary on; #加载vhost.conf文件 include vhost.conf; }vim /usr/local/tengine/conf/vhost.confserver { listen 80; server_name localhost; #强制转跳到HTTPS rewrite ^(.*)$ https://$host$1 permanent; } server{ #监听443端口并开启ssl与HTTP2.0 listen 443 ssl http2; server_name localhost; root /mydata/wwwroot/www/; #默认站点主页 index index.htm index.html index.php; #设置HSTS,它是一个Web安全策略机制 add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; #X-Frame-Options 头部添加到HTTPS站点,确保不会嵌入到frame 或 iframe,避免点击劫持,以确保网站的内容不会嵌入到其他网站。 add_header X-Frame-Options "DENY"; #禁止.ht文件访问。 location ~ /\.ht { deny all; } #设置伪静态重写URL地址 if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } location ~ .*\.php(\/.*)*$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } #设置需要缓存的文件类型 location ~ .*\.(jpg|jpeg|gif|png|ico|mp3|mp4|swf|flv){ #缓存时间为10天 expires 10; } location ~ .*\.(js|css|html|htm)?$ { #缓存时间为1天 expires 1; } #设置.crt证书目录 ssl_certificate /usr/local/tengine/conf/ssl/1_www.awzh.club_bundle.crt; #设置.key证书目录 ssl_certificate_key /usr/local/tengine/conf/ssl/2_www.awzh.club.key; #客户端可以重用会话参数的时间 ssl_session_timeout 5m; #协议配置 ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1; #加密套件配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; }由于设置的是HTTPS,所有需要证书mkdir -p /usr/local/tengine/conf/ssl/www最后上传证书至/usr/local/nginx/conf/ssl文件夹下,重载配置。到此环境配置完成!
2021年05月16日
478 阅读
0 评论
7 点赞