nginx

Posted 烟头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx相关的知识,希望对你有一定的参考价值。

1.0 nginx介绍

  • Nginx官网 nginx.org,最新版1.13,最新稳定版1.12
  • Nginx应用场景:web服务、反向代理、负载均衡
  • Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并
  • Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928

http1.1版本–host(域名) 一个web服务器可以有多个站点,一个站点就是一个虚拟主机。定义虚拟主机的名字用域名来定义。

1.1 如何检测80端口通不通安装telnet

# yum install -y telnet

1.2 检测80端口

# telnet 192.168.109.133 80
Trying 192.168.109.133...
telnet: connect to address 192.168.109.133: No route to host

1.3 说明80端口是不通的,centos7自带firewalld服务,开启状态。建议不要关闭防火墙。做实验想简单点可以关闭

# systemctl stop firewalld

1.4 或者添加80端口

# firewall-cmd --add-port=80/tcp --permanent

1.5 添加80端口还需要重载生效

# firewall-cmd --reload

1.6 现在自定义host到Windows上去设置,因为我们没有购买此域名,配置centos.com配置文件centos.com.conf

server
{
    listen 80;
    server_name centos.com;
    index index.html index.htm index.php;
    root /data/wwwroot/default;
}

1.7 配置aaa.com配置文件aaa.com.conf

server
{
    listen 80 default_server;
    server_name aaa.com;
    index index.html index.htm index.php;
    root /data/wwwroot/aaa.com;
}

默认虚拟主机:就是nginx的第一个虚拟主机,泛解析、禁掉默认虚拟主机,加一行deny all;

 1.8 做个博客站点vim blog.linux.com.conf

server
{
    listen 80 default_server;
    server_name blog.linux.com;
    deny all;

    index index.html index.htm index.php;
    root /data/wwwroot/blog.linux.com;
}

1.9 需要创建/data/wwwroot/blog.linux.com 的目录

# mkdir /data/wwwroot/blog.linux.com

2.0 安装wrodpress,需要配置blog.linux.com配置文件解析php

server
    {
        listen 80;
        server_name blog.linux.com www.luquan.com;
        if ( $host = blog.linux.com )
        {
           rewrite /(.*) http://www.luquan.com/$1 permanent;
        }
        index index.html index.htm index.php;
        root /data/wwwroot/blog.linux.com;

        location ~ .php$ 
        {
            include fastcgi_params;
            fastcgi_pass unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /data/wwwroot/blog.linux.com$fastcgi_script_name;
        }    
 }

官网下载

解压wordpress

移动位置

# mv wordpress/* /data/wwwroot/bolg.linux.com

设置Windows的hotts-blog.linux.com添加 访问blog.linux.com安装

2.1 设置数据库

create database blog;

2.2 创建用户

grant all on blog.* to ‘blog’@‘127.0.0.1’ identified by ‘123456’;

2.3 切换某个库

use blog;

 2.4 查询库里有什么表

show tables;

2.5 问题处理:在安装wordoress过程中,需要设定网站程序目录权限,属主设定为php-fpm服务的那个用户:

# chown -R php-fpm /data/wwwroot/blog.linux.com

 

输入域名照着提示安装wordpress即可

3.0 安装discuz

# yum install -y git

3.1 克隆discuz到root目录下

# git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git

3.2 拷贝upload到bbs.lingx.com

# cp -r DiscuzX/upload  /data/wwwroot/bbs.linux.com

3.3 定义虚拟主机配置文件

# cp blog.linux.com.conf bbs.linux.com.conf

3.4 修改bbs.linux.com.conf里面的目录vim命令模式下

:1,$s/blog.linux.com/bbs.linux.com/g

3.5 重载配置文件

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload

3.6 开始安装,进入跟目录给权限

# cd /data/wwwroot/bbs.linux.com
# chown -R php-fpm config data us_server/data uc_client/data

3.7 定义数据库相关操作进入数据库,创建库

# create database bbs

3.8 创建用户

# grant all on bbs.* to ‘bbs‘@127.0.0.1 identified by ‘123456‘;

安装discuz

4.0 域名重定向

两个域名从一个域名跳转到另外一个域名

配置blog.linux.com.conf,假如说你还有一个域名www.linux.com两个都不想舍弃

server
    {
        listen 80;
        server_name blog.linux.com www.linux.com;
        if ( $host = blog.linux.com )
        {
           rewrite /(.*) http://www.linux.com/$1 permanent;
        }
        index index.html index.htm index.php;
        root /data/wwwroot/blog.linux.com;

        location ~ .php$
        {
            include fastcgi_params;
            fastcgi_pass unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /data/wwwroot/blog.linux.com$fastcgi_script_name;
        }
 }

添加这一行

if ( $host = blog.linux.com )
        {
           rewrite /(.*) http://www.linux.com/$1 permanent;
        }

解释访问blog.linux.com/?p=1就会跳转到www.linux.com/?p=1

premanent是状态码

检测语法重载

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload

测试

# curl -x127.0.0.1:80 -I blog.linux.com/?p=1
HTTP/1.1 301 Moved Permanently
Server: nginx/1.17.0
Date: Sat, 12 Oct 2019 12:21:05 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: http://www.linux.com/?p=1 ##着重看着这行

测试不存在的页面

# curl -x127.0.0.1:80 -I blog.linux.com/abc/admin/1.txt
HTTP/1.1 301 Moved Permanently
Server: nginx/1.17.0
Date: Sat, 12 Oct 2019 12:23:07 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: http://www.linux.com/abc/admin/1.txt

状态码:200(ok) 404(不存在)304(缓存)301(永久重定向)302(临时重定向)

知识:如果是域名跳转用301,如果不涉及域名跳转用302

测试,修改配置文件

server
    {
        listen 80;
        server_name blog.linux.com www.linux.com;
        if ( $host = blog.linux.com )
        {
           rewrite /(.*) http://www.linux.com/$1 permanent;
        }
           rewrite /1.txt /2.txt redirect;
        index index.html index.htm index.php;
        root /data/wwwroot/blog.linux.com;

        location ~ .php$
        {
            include fastcgi_params;
            fastcgi_pass unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /data/wwwroot/blog.linux.com$fastcgi_script_name;
        }
 }

重载配置文件

用www.linux.com测试因为blog.linux.com已经做了跳转

# curl -x127.0.0.1:80 -I www.linux.com/1.txt
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.17.0
Date: Sat, 12 Oct 2019 12:24:36 GMT
Content-Type: text/html
Content-Length: 145
Location: http://www.linux.com/2.txt
Connection: keep-alive

着重看状态码

 

以上是关于nginx的主要内容,如果未能解决你的问题,请参考以下文章

将 nginx rtmp 片段发送到 WebRTC

text 有用的nginx命令和片段

linux学习:Nginx--常见功能配置片段与优化-06

HLS NGINX-RTMP [错误] 1281#0:* 58 hls:强制片段拆分:10.002 秒

Nginx 跨域

Nginx配置文件详细介绍