设为首页 收藏本站
查看: 778|回复: 0

[经验分享] Linux redhat 7 nginx 优化 配置

[复制链接]

尚未签到

发表于 2018-5-9 10:42:29 | 显示全部楼层 |阅读模式
nginx基本配置
  nginx (engine x) 是一款由俄罗斯人开发的一款开源的web服务器软件,nginx可以作web服务器支持html和php,nginx还可以做反向代理、负载均衡
nginx 采用源码包安装 nginx-1.8.1.tar.gz
1.先用yum安装依赖包
yum  - y install gcc pcre-devel openssl-devel zlib-devel make
2.创建一个禁止登陆的用户nginx,用来作为启动niginx的用户,防止由于软件漏洞给系统造成更大的损失。
useradd -s /sbin/nologin nginx
3.解压tar包、配置安装信息、编译、安装

    tar -xf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --user=nginx  --group=nginx --with-http_ssl_module #prefix指定安装路径 --with-http_ssl_module是支持https安全网站的模块如果不需要可以不用安装
make&&make install
  4.做一个软链接到nginx的启动程序,方便以后管理nginx
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
5.启动/关闭nginx  
启动 :nginx     #请注意重复启动会报错  80 端口被占用会报错 重启需要先关闭再启动没有restart
关闭 :nginx -s stop
在大多修改配置文件的情况下,不用重启nginx,使用重载命令可以在正常提供服务的情况下动态加载新的配置文件
6.nginx  作web服务器
一般选择 LNMP(Linux Nginx Mariadb Php)环境搭建动态网站
需要安装的软件包有 php php-mysql mariadb(数据库客户端软件) mariabd-server   mariadb-devel  php-fpm(该软件包需要下载,该软件是php的后台处理程序使用9000端口 nginx把客户端请求的php动态页面发送给php-fpm,经过php-fpm处理返回结果给nginx,nginx再将结果返回给客户端)

    yum -y install   mariadb   mariadb-server   mariadb-devel  php   php-mysql
rpm -hiv php-fpm-5.4.16-36.el7_1.x86_64.rpm
systemctl start php-fpm #启动php-fpm
systemctl status php-fpm  #查看php-fpm的运行状态
systemctl enable php-fpm #设置php-fpm开机自启

  7.修改nginx的配置文件
nginx的配置文件格式是
http{
server{ #定义虚拟机一个server是一个虚拟机
location{ #网站目录 默认是nginx安装目录下的html目录下
}
}
}
vim /usr/local/nginx/conf/nginx.conf
//只对配置文件作部分截取
server {
listen       80;  #监听80端口默认http的服务端口
server_name  localhost; #指定域名
charset utf-8; #中文网站一般设置utf-8编码以免出现乱码
location ~ .php$ {#所有以php结尾的请求转到这个location处理
root           html;#网站目录
fastcgi_pass   127.0.0.1:9000;#请求转发给php-fpm处理
fastcgi_index  index.php; #默认首页
#fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
include        fastcgi.conf;#倒入一个配置文件该文件都是提供一些变量参数
}
}
8.重载nginx
nginx -s reload
9.可以写一个php文件测试php是否可以正常解析
vim /usr/local/nginx/html/test1.php
<?php
$i=&quot;This is a test Page&quot;;
echo $i;
?>
10.如果配置正确服务启动无报错访问localhost/test1.php会得到一个页面 This is a test Page
11.启动数据库服务mariadb
systemctl start mariadb
12.编写一个数据库测试php页面
vim /usr/local/nginx/html/test2.php
<?php
$links=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;密码&quot;);        
//注意:root为mysql账户名称,密码需要修改为实际mysql密码,无密码则留空即可
if($links){
echo &quot;link db ok!!!&quot;;
}
else{
echo &quot;link db no!!!&quot;;
}
?>
13.访问localhost/test2.php  会显示link db ok!!!


nginx优化
  1.地址重写
将访问a.html转到 b.html
在localtion中加入
rewrite /a.html  /b.html;   
将所有访问转到其他域名
在localtion之前server中加入
rewrite ^/ http://www.tmooc.cn/;
将所有访问转到其他域名保持访问的子目录不变
在localtion之前server中加入(使用正则在此正则和shell中正则有些不同\1使用$1)
rewrite ^/(.*) http://www.tmooc.cn/$1;
2.高并发
nginx默认启动一个进程,1024个并发
worker_processes  4; #进程数和cpu核心数需要保持一致;4核cpu可以启动4个进程
  #error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
  #pid        logs/nginx.pid;
  events {
worker_connections  65535; #每个进程并发连接数默认1024 因为linux系统一个用户默认最多只能打开1024个文件;所以改好nginx的并发数后还需要更改linux系统默认能打开文件的个数
}
修改linux系统设置所有用户软件 硬件打开文件最到数为100000实际上用不到那么大
vim /etc/security/limits.conf
#<domain>      <type>  <item>         <value>
#


  • soft     nofile          100000  #
  • hard    nofile          100000
  3.客户端缓存
一般缓存都时缓存静态内容如html css xml jpg png 等等
在server 里再加一个location匹配静态文件格式 定义客户端缓存
location ~* .(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires        30d;            //定义客户端缓存时间为30天
}
4.启用压缩传输,当下所有的浏览器都支持解压,我门开启nginx服务器压缩会减小传输内容的大小;但是要注意一般不要压缩多媒体文件如歌曲;视频;图片;以及过小的文件;因为压缩过程中会在文件中加入压缩信息太小的文件在压缩后反而会更大,多媒体文件本身就是压缩文件再压缩也时给他们再加一层包装除了变大外还要消耗大量服务器资源
http {
server_tokens off;                    //不显示nginx版本号信息 防止黑客使用版本漏洞发起攻击
client_header_buffer_size    1k;        //默认请求包头信息的缓存   当访问地址过长1k缓存不够时会报错,客户体验不够好
large_client_header_buffers  4 4k;        //将这种超过1k的大请求包头部信息的缓存个数与容量调整为4个4k 合集16k 正常情况下的请求都不会超过这个大小了
gzip on; //启用gzip压缩
gzip_min_length 1000; //小于1000字节的文件不压缩
gzip_comp_level 4; //设在压缩级别压缩级别为1-9 压缩级别越高压缩消耗资源越大 ,一般取4-5级别折中比较合适
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;//启用压缩的文件类型 具体格式参数参照  /usr/local/nginx/conf/mime.types文件
......
}
5.自定义错误页面提高体验度
error_page   404  /404.html;    //自定义错误页面到网站根目录下的一个404页面代替默认的404错误
location = /404.html {
root   html;
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-457566-1-1.html 上篇帖子: Linux redhat 6.4网卡绑定故障之重启自启动 下篇帖子: 银行 Redhat7无网部署Mysql.5.7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表