centos7中nginx的安装使用和配置优化

nginx是一个轻量级的web服务器,也是一个轻量级反向代理服务器。我们主要使用nginx的反向代理功能。特点有:高稳定、高性能、资源占用少、模块化丰富。nginx的进程结构:启动nginx的时候,会启动一个masert进程,这个进程不处理客户端的任何请求,主要是用来产生worker进程,一个worker来处理一个request,互不影响。据说单台nginx可以做到10万并发以上。
centos因为有yum安装,所以安装nginx非常简便。首先安装一下yum源,再进行安装就可以了:yum -y install epel-release && yum -y install nginx。我们可以输入命令看下nginx的配置文件在哪:

[root@cs ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

这个命令主要用于测试配置文件有没有错误,也可以看到配置文件的路径。我们可以看下nginx的路径、启动nginx(yum安装变量会直接配好,所以直接输入就好了):

[root@cs ~]# find / -name "nginx"
/usr/lib64/perl5/vendor_perl/auto/nginx
/usr/lib64/nginx
/usr/sbin/nginx
/usr/share/nginx
/etc/logrotate.d/nginx
/etc/nginx
/var/lib/nginx
/var/log/nginx
[root@cs sbin]# nginx 

然后就可以输入网址看到nginx的页面了。其他命令:nginx -s stop 停止、nginx -c 指定配置文件启动。可以看一下配置文件内容vi /etc/nginx/nginx.cnf (也是我们优化需要更改的文件):

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;                          #用户、谁在使用nginx
worker_processes auto;               #工作的进程数,auto表示自动选择,如果cpu多的话,一般为cpu的倍数,
error_log /var/log/nginx/error.log;  #nginx错误日志路径
pid /run/nginx.pid;                  #nginx进程号路径

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {                            #事件模块,定义每个进程可以启动多少个worker
    use eroll;                      #事件模型,一般linux中就用eroll
    worker_connections 1024;        #可以根据操作系统的最大打开数来设置,用 ulimit -n 来查看,但是理论上,没必要设置这么大
}
http {                                                                           #主要是协议级别的
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #定义日志main的结构,记录哪些东西,可以自己调整,前提当然是会!
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;                                 #使用main日志格式,设置路径。

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;                
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;                                  #包含这个配置文件,所以也可以在这个指定的文件中配置
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {                                                                   #服务器设置,服务级别
        listen       80 default_server;                                        #监听那个端口
        listen       [::]:80 default_server;
        server_name  _;                                                        #服务名称
        root         /usr/share/nginx/html;                                    #做动静分离时,可以指定去哪找资源

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {                                                          #请求级别的,做反向代理时的模块
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

如果我们想在一个服务器中配置多个项目,然后根据不同的域名来访问不同的项目,也可以在nginx中配置。只需在http模块下增加:

server
{
    listen 80;
    server_name www.aizhel.com  aizhel.com;
    location / {
        proxy_redirect off;
        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_pass http://127.0.0.1:8180;
    }
    access_log /var/log/nginx/aizhel_access.log;
}


server
{
    listen 80;
    server_name www.chenshuai.top chenshuai.top;
    location / {
        proxy_redirect off;
        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_pass http://127.0.0.1:8280;
    }
    access_log /var/log/nginx/chenshuai_access.log;
}

server
{
    listen 80;
    server_name www.itshuai.com itshuai.com www.itshuai.cn itshuai.cn;
    location / {
        proxy_redirect off;
        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_pass http://127.0.0.1:8380;
    }
    access_log /var/log/nginx/itshuai_access.log;
}

若果我们想在nginx中配置根据不同后缀来访问不同的项目,和上面的配置差不多:

    server {
        listen       80;           #监听的端口
        server_name  localhost;    #可以是域名

        location /asso  {
           proxy_pass http://localhost:8081/asso;
        }

        location /usso  {
           proxy_pass http://localhost:8080/usso;
        }

如果我们需要一些功能需要在nginx.conf中增加配置,添加参数。对于用不到的模块,就注释或者删除。建议对配置文件备份一下,然后自己配置。具体指令可以参看nginx官网文档:http://nginx.org/en/docs/ngx_core_module.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值