nginx的基本使用(启动、关闭及域名映射访问)

来源:互联网 发布:21lic单片机项目外包网 编辑:程序博客网 时间:2024/06/06 02:03
这几天捣鼓公司网站,采用nginx+tomcat协同工作,里面一些东西做一下相关备份,以备后来工作中的使用

1、停止nginx:停止操作是通过向nginx进程发送信号来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx


另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'

平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
/usr/sbin/nginx -s reload

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/nginx.conf
或者
/usr/sbin/nginx -t

2、启动nginx
启动命令:/usr/sbin/nginx -c /usr/nginx/nginx.conf

-c制定配置文件的路径


3、nginx的域名访问配置

域名A:www.a.com的配置文件如下:(样例)

server {    listen       80;    server_name  *.a.com;    location / {        proxy_pass http://localhost:8080/projectA/;        proxy_set_header   Host    $host;        proxy_set_header   X-Real-IP   $remote_addr;        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;    }}
本人实做:

upstream tomcat_web{      server localhost:8080 weight=10;    }    server {        listen       80  default_server;        listen       [::]:80  default_server;        server_name  www.XXXXXX.net;        #index index.jsp        # root         /home/microlink/app/site;        # Load configuration files for the default server block.        include /etc/nginx/default.d/*.conf;        location / {            #jsp网站程序根目录,一般nginx与tomcat在同一个目录            root  /home/xxx/xxx/site;            index  index.html index.jsp index.html;        }        location ~ .*\.jsp$ {             proxy_connect_timeout   3;               proxy_send_timeout      30;               proxy_read_timeout      30;               proxy_pass http://localhost:8080;     proxy_set_header   Host    $host;     proxy_set_header   X-Real-IP   $remote_addr;     proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;          }

4、防火墙的开启、关闭及状态查询

  • 查看防火墙状态。
    systemctl status firewalld
  • 查看防火墙状态
    chkconfig iptables --list
  • 临时关闭防火墙命令。重启电脑后,防火墙自动起来。
    systemctl stop firewalld
  • 永久关闭防火墙命令。重启后,防火墙不会自动启动。
    systemctl disable firewalld
  • 打开防火墙命令。
    systemctl enable firewalld
  • (1) 重启后永久性生效:
  • 开启:chkconfig iptables on
    关闭:chkconfig iptables off
    (2) 即时生效,重启后失效:
    开启:service iptables start
    关闭:service iptables stop
    需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
    在开启了防火墙时,做如下设置,开启相关端口,
    修改/etc/sysconfig/iptables 文件,添加以下内容:
    -A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport 22 -j ACCEPT
    或者:
    /etc/init.d/iptables status 会得到一系列信息,说明防火墙开着。
    /etc/rc.d/init.d/iptables stop 关闭防火墙
    最后:
    在根用户下输入setup,进入一个图形界面,选择Firewall configuration,进入下一界面,选择Security Level为Disabled,保存。重启即可。
    ======================================================
    fedora下
    /etc/init.d/iptables stop
    =======================================================
    ubuntu下:
    由于UBUNTU没有相关的直接命令
    请用如下命令
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    暂时开放所有端口
    Ubuntu上没有关闭iptables的命令
    =======================================================
    iptables 是linux下一款强大的防火墙,在不考虑效率的情况下,功能强大到足可以替代大多数硬件防火墙,但是强大的防火墙如果应用不当,可能挡住的可不光是那些潜在的攻击,还有可能是你自己哦。这个带来的危害对于普通的个人PC来说可能无关紧要,但是想象一下,如果这是一台服务器,一旦发生这样的情况,不光是影院正常的服务,还需要到现场去恢复,这会给你带来多少损失呢?
    所以我想说的是,当你敲入每一个iptables 相关命令的时候都要万分小心。
    1.应用每一个规则到DROP target时,都要仔细检查规则,应用之前要考虑他给你带来的影响。
    2.在redhat中我们可以使用service iptables stop来关闭防火墙,但是在有些版本如ubuntu中这个命令却不起作用,大家可能在网上搜索到不少文章告诉你用iptables -F这个命令来关闭防火墙,但是使用这个命令前,千万记得用iptables -L查看一下你的系统中所有链的默认target,iptables -F这个命令只是清除所有规则,只不会真正关闭iptables.想象一下,如果你的链默认target是DROP,本来你有规则来允许一些特定的端口,但一旦应用iptables -L ,清除了所有规则以后,默认的target就会阻止任何访问,当然包括远程ssh管理服务器的你。
    所以我建议的关闭防火墙命令是
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F
    总之,当你要在你的服务器上做任何变更时,最好有一个测试环境做过充分的测试再应用到你的服务器。除此之外,要用好iptables,那就要理解iptables的运行原理,知道对于每一个数据包iptables是怎么样来处理的。这样才能准确地书写规则,避免带来不必要的麻烦。


参考链接:

<1>http://bbs.51cto.com/thread-1095321-1-1.html

<2>http://blog.csdn.net/kobejayandy/article/details/20867351

<3>http://www.cnblogs.com/freespider/p/4684586.html

<4>http://blog.csdn.net/tongzidane/article/details/42291857(nginx安装、配置等)

<5>http://www.51itstudy.com/50449.html






0 0
原创粉丝点击