linux之nginx的安装

(一)这次是自己折腾服务器的环境,所以自己算是都装过一遍,在装的过程中也是在网上搜索,其实最后在公司运维的指导下知道自己安装出错在哪里的。不说了,直接说安装和问题

(二):首先从 http://nginx.org/en/download.html下载自己需要的nginx(http://nginx.org/download/nginx-1.8.0.tar.gz),我安装的事1.8.0的。

    1:安装前准备工作,安装make编译器(这里有说明--->http://www.cnblogs.com/suihui/archive/2013/04/13/3018557.html)

    2:首先进入/usr/local/ 命令 cd /usr/local;然后使用命令:sudo mkdir nginx创建nginx的文件夹;

    3:进入下载好的nginx.tar.gz 的安装包的目录:使用 tar -axvf  nginx-1.8.0.tar.gz  进入目录 cd nginx-1.8.0 ;准备安装nginx;

    4:安装命令:

./configure  —prefix=/usr/local/nginx  (说明:后面的"—prefix=/usr/local/nginx"指定安装的目录。)

          make

make install

    5:只要其中三步骤,nginx基本就配置成功,接下来就是配置相应得到端口号转发等操作。

    配置:

      

server {
listen ;###监听的端口
server_name 123.222.222.222;###这里是代表监听的ip(这个名字是否有特殊的意义我暂时有点不确定,在我的理解上应该只是个名字) #charset koi8-r; access_log /data/logs/nginx/push_server.access.log main;
error_log /data/logs/nginx/push_server.error.log; location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
#proxy_pass http://127.0.0.1:8080;
} }

当然也可以配置多个监听,直接复制一个完整的server,当然监听的端口不同;下面配置的这个是个图片路径查找的;如果外网访问"http://123.222.222.222/test/imgs/view/123.png"的图片,会通过nginx转发,最后找的路径是服务器上"/home/data/test/imgs/view/123.png"这个路径

 server {
listen ;
server_name 123.222.222.222;
location ^~ /test/imgs/view {
root /home/data;
expires 10d;
}
location ^~ /test/imgs/person/ {
root /home/data;
expires 10d;
}
location ~ $ {
#root /usr/local/tomcat/webapps/chargepile;
server_name_in_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8088;(说明:这是转发到内网为8088的端口服务的tomcat下)
client_max_body_size 10m;(说明:指定上传文件大小)
}

tomcat的配置

<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources> <!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina"> <!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
--> <!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
This connector uses the NIO implementation that requires the JSSE
style configuration. When using the APR/native implementation, the
OpenSSL style configuration is required as described in the APR/native
documentation -->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
--> <!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html --> <!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost"> <!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
--> <!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm> <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
--> <!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>

  

这里的tomcat的端口还是需要好好理解下;

然后我们进行访问,有时候就会出现一下图片内容

linux之nginx的安装 

这样可以就在nginx.conf里面的第一行加入:"user root";

这是第一种方法,第二种就是把访问的目录给相应的权限,但是这个我没试过,现在用的都是直接在nginx里面配置上面那种方式。

(三):总结

其实看看上面觉得nginx还是比较好配置的,但是如果能够理解原理更好,这里面有一点是我在写的时候想到的,就是我监听了端口,然后进行转发到tomcat的端口,那么tomcat就会执行程序?为什么会执行程序了?如果我这个tomcat下面会有多个项目,那么怎么指定执行特定的程序了?这个还是得思考,第一步已经做到了那就是使用,会使用后就尽量去弄明白原理哦,虽然我不是专业做运维的,但是我是做web,多了解点也是好的。努力。

    

上一篇:[Android Security] APK自我保护 - DEX/APK校验


下一篇:Error running 'Unnamed': Address localhost:1099 is already in use