首页
关于
友链
统计
更多
留言
Search
1
centos7下源码编译安装Lnmp环境
483 阅读
2
Centos 8 安装samba服务
404 阅读
3
golang库-GoCV
297 阅读
4
Golang 通用后台权限管理系统 (Go-Funny-CMS)
231 阅读
5
nginx、apache启用HSTS
199 阅读
其他
前端
JavaScript
后端
Linux
PHP
golang
登录
Search
标签搜索
linux
php
golang
golang库
github
加速器
mysql
nginx
apache
lnmp
虚拟内存
JavaScript
nodejs
redis
流星Aday
累计撰写
14
篇文章
累计收到
0
条评论
首页
栏目
其他
前端
JavaScript
后端
Linux
PHP
golang
页面
关于
友链
统计
留言
搜索到
9
篇与
linux
的结果
2021-07-17
Centos 8 安装samba服务
介绍samba是在linux系统上实现smb协议的一个免费软件,由服务器及客户端程序构成。samba最大的作用就是可以用于linux与windows系统直接的文件共享和打印共享,samba既可以用于windows与Linux之间的文件共享,也可以用于linux与linux之间的资源共享。安装sambadnf -y install samba samba-client 修改配置vim /etc/samba/smb.conf部分配置介绍#全局配置 [global] server string=smb文件共享服务 #设定samba server的注释,支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名 workgroup = samba #设定samba server加入的工作组或者域 security = user #设置用户访问samba server的验证方式,一共有四种验证方式。 #share:不需要提供用户名和密码,安全性能较低。 #user:samba server共享目录只能被授权的用户访问,由samba server负责检查账号和密码的正确性。账号和密码要在本samba server中建立。 #server:依靠其他sindows NT/2000或samba server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的sindows用户和口令集中到一个NT系统上,使用windows NT进行samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,samba将使用用户级安全模式作为替代的方式。 #domain:域安全级别,使用主域控制器(PDC)来完成认证。 passdb backend = tdbsam #用户后台。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam是security account manager(安全账户管理)的简写。 printing = cups #设置samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx printcap name = cups #设置共享打印机的配置文件。可为路径:/etc/printcap load printers = yes #设置是否在启动samba时就共享打印机。 cups options = raw #通用Unix打印系统配置参数 interfaces = lo ens33 192.168.157.129/24 127.0.0.1/24 #设置samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址,空格分隔。 guert account = pcguest #设定访问samba server的来宾帐户(即访问时不用输入用户名和密码的帐户,也就是匿名用户),若设为pcguest的话则为默认为nobody用户。 log file = /var/log/samba/%m.log #日志文件的储存位置和文件名(%m代表客户端主机名) max log size = 0 #设定日志文件的最大容量,单位KB,这里的预设值0代表不做限制。 password server = 127.0.0.1 #指定某台服务器(包括windows 和 linux)的密码,作为用户登入时验证的密码。此项需配合security = server时,才可设定本参数。 password level = 8 #密码位数 username level = 4 #用户名位数 encrypt passwords = Yes #设定是否对samba的密码加密。 smb passwd file = /etc/samba/smbpasswd #设定samba的密码文件 local master = no #设定samba server是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no os level = 33 #设定samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上。 domain master = no #设定samba server是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no preferred master = yes #设定samba server是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no,(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次) wins support = yes #设定samba server是否想网络提供WINS服务,通常无特殊原因设为no。除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes,其他wins support和wins server只能选择一个 wins server = 192.168.0.1 #设定samba server是否要使用别台主机提供的WINS服务,通常无特殊原因设为no。除非所处网络上有一台主机提供WINS服务才要设yes,其他wins support和wins server #分享的资源名称 [homes] comment = Home Directories #描述 admin users = root #该共享的管理者,多个用户中间用逗号隔开 valid users = %S,%D%w%S #允许访问该共享的用户,多个用户或者组中间用逗号隔开,如果要加入一个组就用"@+组名"表示。%S表示目录登录用户 browseable = Yes #是否隐藏目录(知道目录同样可以访问) read only = No #是否只读 inherit acls = Yes #是否继承acl权限设置 public = No #不允许匿名用户访问,Yes允许 path = /var/tmp #共享目录路径,可以用%u、%m这样的宏来代替路径里的lnix用户和客户机的netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。 create mask = 0600 #控制用户端创建文件的权限 write list = @printadmin root #允许写入该共享的用户 force group = @printadmin #指定存取资源时须以此设定的群组使用者进入才能存取(@组名) force user = root #指定存取资源时须以此设定的使用者进入才能存取(用户名) directory mask = 0775 #控制用户端创建目录的权限 allow hosts = 192.168.157. #设定只有此网段/IP的用户才能访问共享资源 allwo hosts = 192.168.156. #allow hosts的排除ip deny hosts = 1.1.1. #设定只有此网段/IP的用户不能访问共享资源 writable = yes #是否可写 printable = no #是否为共享段打印机也可查看 /etc/samba/smb.conf.example文件获取详细介绍配置示例假如我现在需要配置一个work共享目录,配置如下:[global] server string=smb文件共享服务 workgroup = root security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw interfaces = lo ens33 192.168.157.129/24 127.0.0.1/24 max log size = 0 [work] comment = work目录 admin users = root valid users = @root browseable = No read only = No inherit acls = Yes public = No path = /work create mask = 0644 directory mask = 0744 write list = root force group = @root force user = root allow hosts = 192.168.157.可使用testparm命令来查看配置是否正常其他设置smbpasswd -a root #先设置登入用户及密码,需要与smb.conf中的admin users配置一致 systemctl stop firewalld.service #临时关闭防火墙 systemctl disable firewalld #禁止开启启动 setenforce 0 #临时关闭SELinux权限 vim /etc/selinux/config #永久关闭,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。启动服务systemctl restart smb systemctl enable smb
2021年07月17日
404 阅读
0 评论
6 点赞
2021-05-26
centos8安装mysql8
下载wget -c https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm安装rpm -ivh mysql80-community-release-el8-1.noarch.rpm dnf -y install mysql-server修改配置需先创建目录mkdir -p /usr/local/mysql/data /usr/local/mysql/tmp把目录权限给mysql用户chown -R mysql:mysql /usr/local/mysql/data /usr/local/mysql/tmp修改配置如下,然后保存。vim /etc/my.cnf[mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data port=32456 socket=/usr/local/mysql/tmp/mysql.sock lower_case_table_names=1 [client] default-character-set=utf8 socket=/usr/local/mysql/tmp/mysql.sock [mysql] default-character-set=utf8 socket=/usr/local/mysql/tmp/mysql.sock 启动首次安装需要初始化,启动服务时间较长systemctl restart mysqld.service修改root密码首次登入无密码,直接回车 。mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';允许root远程访问use mysql; update user set host="%" where user="root"; flush privileges;#刷新权限添加开启自启systemctl enable mysqld.service
2021年05月26日
70 阅读
0 评论
3 点赞
2021-05-16
nginx、apache启用HSTS
1、什么是HSTSHTTPS(SSL和TLS)确保用户和网站通讯过程中安全,使攻击者难于拦截、修改和假冒。当用户手动输入域名或http://链接,该网站的第一个请求是未加密的,使用普通的http。最安全的网站立即发送回一个重定向使用户引向到https连接,然而,中间人攻击者可能会攻击拦截初始的http请求,从而控制用户后续的回话。自然而然HSTS应运而生为了解决这一潜在的安全问题。即时用户输入域名或http连接,浏览器将严格的升级到https连接。2、HSTS如何工作的HSTS策略是从安全的HTTPS站点发送的HTTP响应头部发布的。Strict-Transport-Security: max-age=31536000当浏览器从HTTPS站点看到这个头部,就知道该域名只能通过HTTPS(SSL 或者 TLS)访问了。并将此信息缓存到31536000,也就是1年。可选的参数includeSubDomains告诉浏览器该策略适用于当前域下的所有子域。Strict-Transport-Security: max-age=31536000; includeSubDomains3、配置HSTS3.1、Nginx配置HSTS在server端添加该头部,并重启服务。add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";3.2、Apache2配置HSTS#先开启模块: LoadModule headers_module modules/mod_headers.so <VirtualHost 0.0.0.0:443> Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" </VirtualHost>然后,重启Apache服务。4、设置X-Frame-Options 头部X-Frame-Options 头部添加到HTTPS站点,确保不会嵌入到frame 或 iframe,避免点击劫持,以确保网站的内容不会嵌入到其他网站。4.1、ApacheHeader always set X-Frame-Options DENY4.2、Nginxadd_header X-Frame-Options "DENY";
2021年05月16日
199 阅读
0 评论
11 点赞
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日
483 阅读
0 评论
7 点赞
2021-05-16
centos配置虚拟内存
#if 表示infile,of表示outfile,bs=1024代表增加的模块大小,count=2048000代表2048000个模块,也就是2G空间 dd if=/dev/zero of=/var/swap bs=1024 count=2048000 mkswap /var/swap chmod 600 /var/swap mkswap -f /var/swap swapon /var/swap echo '/var/swap swap swap defaults 0 0' >> /etc/fstab
2021年05月16日
116 阅读
0 评论
11 点赞
1
2